Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.226.17.3] |
|
Сообщ.
#1
,
|
|
|
Раздел к node.js не сильно располагает, но лучше места не нашёл ))
Весь день сегодня долбался - почему не работает шифрование, хотя казалось что должно работать. Написал такой скриптик на js #!/bin/node var crypto, ALGORITHM, KEY; crypto = require('crypto'); ALGORITHM = 'AES-256-CBC'; KEY = "5eca9bd3eb07c006cd43ae48dfde7fd3"; IV = "7d90268e7d90268e"; var encrypt = function (plain_text) { var cipher_text; var hmac; var encryptor; encryptor = crypto.createCipheriv(ALGORITHM, KEY, IV); encryptor.setEncoding('hex'); encryptor.write(plain_text); encryptor.end(); cipher_text = encryptor.read(); return cipher_text; }; var decrypt = function (cipher_text) { var ct = cipher_text; var decryptor; decryptor = crypto.createDecipheriv(ALGORITHM, KEY, IV); decryptor.update(ct, 'hex', 'utf8'); return decryptor.final('utf-8') }; var blob = encrypt("Hello World!!!!"); console.log(blob); var unblob = decrypt(blob); console.log(unblob); И вроде работает. но стоит сделать шифруемую строку длинее, к примеру так "Hello World!!!!!" и уже не работает. т.е. работает пока длиня строки меньше длины IV. Интересно, это проблема локальная, у других в node.js модуль crypto работает нормально? И есть ли какие другие решения (для node.js желательно) P.S. Реализация на Си (EVP_EncryptInit, EVP_EncryptUpdate...) работает нормально. |