Я пытаюсь реализовать связь между
На стороне python-сервера Я шифрую строку с iv
и passphrase
и отправляю iv с зашифрованным текстом base64, зашифрованным на клиентскую сторону javascript . Затем я хочу decrypt
строку с парольной фразой, которую может ввести пользователь.
python - сервер
from Crypto.Cipher import AES
from Crypto import Random
iv = Random.get_random_bytes(16)
key = "1234567812345678"
aes = AES.new(key, AES.MODE_CFB, iv)
encrypted_text = base64.b64encode(aes.encrypt("this is a test.."))
iv = base64.b64encode(iv)
# send iv, encrypted_text to client
javascript - клиент
// <script type="text/javascript"
src="http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac-pbkdf2-blockmodes-aes.js">
</script>
// text, and iv is base64encoded from the python script
// key is a string from an <input type='text'>
decrypted = Crypto.AES.decrypt(text, key, {iv: iv, mode: new Crypto.mode.CFB});
В этом примере я получаю ошибку JavaScript
Uncaught URIError: URI malformed
Но это только один пример - я попробовал каждое созвездие кодировок / декодирований base64, о которых только мог подумать. Я также пытался изменить режим. Но это все случайные тесты, и я хочу понять, что мне действительно нужно делать.
- Какую кодировку хочет crypt-js?
- Какой режим выбрать?
- Что-то, что я должен изменить на стороне сервера python?
- как насчет заполнения? Может ли быть ошибка?
- какие-нибудь другие библиотеки javascript, которые вы можете порекомендовать?
Большое спасибо и добрые пожелания,
samuirai