На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила!
Пожалуйста, подумайте два! раза перед тем как нажать кнопку Отправить.
Убедительная просьба пользоваться поиском и ИНСТРУКЦИЕЙ, и только потом спрашивать!


  • Публикация вирусов/эксплоитов в бинарном виде запрещена!
  • Запрещается размещать прямые ссылки на зараженные сайты! (если хочется предупредить, то исправляйте HTTP://... на ХТТП://...)
  • Категорически запрещается поиск кряков/варезов/серийников, а также размещение ссылок на серийники/ключи/кряки и т.п.
  • Запрещается использование оскорбительных выражений в адрес участников коференции, в том числе и в личной переписке.


Модераторы: Rust
  
> crypto в node.js, Глючит зараза.
    Раздел к node.js не сильно располагает, но лучше места не нашёл ))

    Весь день сегодня долбался - почему не работает шифрование, хотя казалось что должно работать.

    Написал такой скриптик на js

    ExpandedWrap disabled
      #!/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...) работает нормально.
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script Execution time: 0,0772 ]   [ 17 queries used ]   [ Generated: 16.07.18, 03:10 GMT ]