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 шифрование?
Изменено пользователем OnePeople6 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.