Реализуйте алгоритм RSA в Python - PullRequest
0 голосов
/ 25 января 2020

У меня есть код в узле для передачи на python, но у меня много проблем при попытке сделать это. Прежде всего в python говорится, что размер текста слишком длинный. Код ниже в узле работает.

const NodeRSA = require('node-rsa');
const publicKey = 'XPTO';
const xApiKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
const key = new NodeRSA({ b: 512 });

function rsaEncrypt(buffer) {
   key.importKey(publicKey, 'public');
   return key.encrypt(buffer, 'base64');
}
console.log(rsaEncrypt(xApiKey + '|' + new Date().getTime()));

Это мой python код, где я пытался сделать то же самое:

keyPub = RSA.importKey(newPublicKey)
cipher = Cipher_PKCS1_v1_5.new(keyPub)
cipher_text = cipher.encrypt(msg.encode())
emsg = b64encode(cipher_text)
print(emsg)

Сообщение об ошибке:

ValueError: Plaintext is too long.

Я понял, что сообщение не может быть выше ключа publi c, но почему оно работает в узле? Может быть, некоторые хеширования по умолчанию отличаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...