AES256 NodeJS расшифровка - PullRequest
       13

AES256 NodeJS расшифровка

0 голосов
/ 18 февраля 2020

Мои чистые данные: Test12345678910 Мой секретный ключ: 12345678901234561234567890123456

Когда я шифрую данные, я получаю этот вывод: ldJbAK2rYjDnS6kWz2O + Aw ==

когда я дешифрую его, я получаю ошибку 1005 *

internal/crypto/cipher.js:164
  const ret = this._handle.final();
                           ^

Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length

мой код;

  const crypto = require('crypto');
  const encrypted = "ldJbAK2rYjDnS6kWz2O+Aw==";
  const key = "12345678901234561234567890123456";
  let decipher = crypto.createDecipher('aes-256-cbc', key);
  let decrypted = decipher.update(encrypted);
  decrypted = [decrypted, decipher.final("utf-8")];
  console.log(decrypted.toString());

Шифрование из C#

public static string EncryptToken(string text)
{
    string confkey = "12345678901234561234567890123456";
    byte[] array;

    try
    {
        using (Aes aes = Aes.Create())
        {

            aes.Key = Encoding.UTF8.GetBytes(confkey);
            aes.IV = new byte[16];

            ICryptoTransform encryptor = aes.CreateEncryptor(aes.Key, aes.IV);

            using (MemoryStream memoryStream = new MemoryStream())
            {
                using (CryptoStream cryptoStream = new CryptoStream((Stream)memoryStream, encryptor, CryptoStreamMode.Write))
                {
                    using (StreamWriter streamWriter = new StreamWriter((Stream)cryptoStream))
                    {
                        streamWriter.Write(text);
                    }

                    array = memoryStream.ToArray();
                }
            }
        }

        return Convert.ToBase64String(array);
    }
    catch
    {
        return string.Empty;

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