OnePeople Опубликовано 23 декабря, 2016 Поделиться Опубликовано 23 декабря, 2016 (изменено) Итак, зарегистрировал свое приложение, читаю пишут для этих API лучше использовать ауниентификацию через service account, ладно создал. Получил ключ в формате JSON Иии, что теперь понять не могу, зачем такой огород из способов аунтефикации? Помогите разобраться!!! Понял нужен JWT, как сделать RSA256 шифрование? Изменено 23 декабря, 2016 пользователем OnePeople Цитата Ссылка на комментарий
0 Кривяков Виталий Опубликовано 23 декабря, 2016 Поделиться Опубликовано 23 декабря, 2016 Вот набор библиотек для работы с JWT, к сожалению у Delphi там ограниченная поддержка. Может что-то удастся вытащить? https://jwt.io/ Цитата Ссылка на комментарий
0 OnePeople Опубликовано 23 декабря, 2016 Автор Поделиться Опубликовано 23 декабря, 2016 1 час назад, Кривяков Виталий сказал: Вот набор библиотек для работы с JWT, к сожалению у Delphi там ограниченная поддержка. Может что-то удастся вытащить? https://jwt.io/ Спасибо нашел нужные библиотеки в другом месте, наконец-то хотя бы авторизировался))) Цитата Ссылка на комментарий
0 OnePeople Опубликовано 24 декабря, 2016 Автор Поделиться Опубликовано 24 декабря, 2016 (изменено) Рано обрадовался один раз прокатило и всё, (Как так??) Кто знает в чем суть шифрования 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: Вот как это понять? Изменено 24 декабря, 2016 пользователем OnePeople Цитата Ссылка на комментарий
0 OnePeople Опубликовано 25 декабря, 2016 Автор Поделиться Опубликовано 25 декабря, 2016 Может кто с питона на делфи переделать это Спойлер 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 egorea1999 Опубликовано 25 декабря, 2016 Поделиться Опубликовано 25 декабря, 2016 (изменено) 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] Изменено 25 декабря, 2016 пользователем egorea1999 OnePeople и Rusland 2 Цитата Ссылка на комментарий
0 OnePeople Опубликовано 25 декабря, 2016 Автор Поделиться Опубликовано 25 декабря, 2016 Спасибо попробую; Цитата Ссылка на комментарий
Вопрос
OnePeople
Итак, зарегистрировал свое приложение, читаю пишут для этих API лучше использовать ауниентификацию через service account, ладно создал.
Получил ключ в формате JSON
Иии, что теперь понять не могу, зачем такой огород из способов аунтефикации?
Помогите разобраться!!!
Понял нужен JWT, как сделать RSA256 шифрование?
Изменено пользователем OnePeopleСсылка на комментарий
6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.