Перейти к содержанию
Fire Monkey от А до Я
  • 0

Google Speech API


OnePeople

Вопрос

Итак, зарегистрировал свое приложение, читаю пишут для этих API лучше использовать ауниентификацию через service account, ладно создал.

Получил ключ в формате JSON

Иии, что теперь понять не могу, зачем такой огород из способов аунтефикации?

Помогите разобраться!!!

Понял нужен JWT, как сделать RSA256 шифрование?

Изменено пользователем OnePeople
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Вот набор библиотек для работы с JWT, к сожалению у Delphi там ограниченная поддержка. Может что-то удастся вытащить?

https://jwt.io/

Ссылка на комментарий
  • 0
1 час назад, Кривяков Виталий сказал:

Вот набор библиотек для работы с JWT, к сожалению у Delphi там ограниченная поддержка. Может что-то удастся вытащить?

https://jwt.io/

Спасибо нашел нужные библиотеки в другом месте, наконец-то хотя бы авторизировался)))

Ссылка на комментарий
  • 0

Рано обрадовался один раз прокатило и всё, (Как так??) 

Кто знает в чем суть шифрования  RSASSA-PKCS1-V1_5-SIGN ?

Я беру

 
Спойлер

 


{"alg":"RS256","typ":"JWT"}.
{
"iss":"761326798069-r5mljlln1rd4lrbhg75efgigp36m78j5@developer.gserviceaccount.com",
"scope":"https://www.googleapis.com/auth/prediction",
"aud":"https://www.googleapis.com/oauth2/v4/token",
"exp":1328554385,
"iat":1328550785
}.

Получаю из нах base64

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92NC90b2tlbiIsImV4cCI6MTMyODU1NDM4NSwiaWF0IjoxMzI4NTUwNzg1fQ

 

 

 

 

Затем идет шифрование

как я понимаю нужно получить SHA256 ключа, с помощью этого же ключа, а затем с помощью полученного ключа уже зашифровать методом RSA то что выше?

Или не так?

The RSA private key is then passed to the RSA signing function, which
   also takes the hash type, SHA-256, and the JWS Signing Input as
   inputs.  The result of the digital signature is an octet sequence,
   which represents a big-endian integer.  In this example, it is:

Вот как это понять?

Изменено пользователем OnePeople
Ссылка на комментарий
  • 0

Может кто с питона на делфи переделать это

Спойлер

 

def i2osp(x, xLen):
        if x >= 256^xLen:
            raise ValueError("integer too large")
        digits = []

        while x:
            digits.append(int(x % 256))
            x //= 256
        for i in range(xLen - len(digits)):
            digits.append(0)
        return digits[::-1]

def os2ip(X):
        xLen = len(X)
        X = X[::-1]
        x = 0
        for i in range(xLen):
            x += X * 256^i
        return x

 

 

Ссылка на комментарий
  • 0
42 минуты назад, OnePeople сказал:

Может кто с питона на делфи переделать это

  Скрыть контент

 

def i2osp(x, xLen):
        if x >= 256^xLen:
            raise ValueError("integer too large")
        digits = []

        while x:
            digits.append(int(x % 256))
            x //= 256
        for i in range(xLen - len(digits)):
            digits.append(0)
        return digits[::-1]

def os2ip(X):
        xLen = len(X)
        X = X[::-1]
        x = 0
        for i in range(xLen):
            x += X * 256^i
        return x

 

 

type
  EValueError = class(Exception);
  TDigits = TArray<Integer>;

function i2osp(x, xLen: Integer): TDigits;
var
  I: Integer;
begin
  if x >= 256 xor xLen then
    raise EValueError.Create('integer too large');

  Result := [];
  while x <> 0 do
  begin
    Result := Result + [x mod 256];
    x := x div 256;
  end;

  for I := 0 to xLen - Length(Result) - 1 do
    Result := Result + [0];

  // return digits[::-1] ??
  // SetLength(Result, Length(Result) - 1) ??
end;

function os2ip(x: TDigits): Integer;
var
  I: Integer;
begin
  Result := 0;
  // X = X[::-1]
  // SetLength(x, Length(x) - 1) ??
  for I := 0 to Length(x) - 1 do
    Result := Result + (Result * 256 xor I);
end;

Не претендую на правильный код, но как-то так, что осталось для меня непонятным, так это [::-1]

Изменено пользователем egorea1999
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...