шифрование crypto-js не возвращается так же, как шифрование C # - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь преобразовать метод шифрования C # в angular с помощью библиотеки crypto-js в моем угловом проекте.

Вот реализация метода C #

private const string EncryptionKey = "SomeSecretKEY";
private readonly static byte[] Salt = Encoding.ASCII.GetBytes(EncryptionKey.Length.ToString());

public static String EncryptPassword(string password)
{
    var rijndaelCipher = new RijndaelManaged();
    byte[] plainText = Encoding.Unicode.GetBytes(password);
    var secretKey = new PasswordDeriveBytes(EncryptionKey, Salt);


    using (ICryptoTransform encryptor = rijndaelCipher.CreateEncryptor(secretKey.GetBytes(32), secretKey.GetBytes(16)))
    {
        using (var memoryStream = new MemoryStream())
        {
            using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
            {
                cryptoStream.Write(plainText, 0, plainText.Length);
                cryptoStream.FlushFinalBlock();
                return Convert.ToBase64String(memoryStream.ToArray());
            }
        }
    }
}

И этоЧто я пытаюсь в угловых

var enckey = "SomeSecretKEY";
var salt = CryptoJS.enc.Hex.parse(enckey.length.toString());
var key32Byte = CryptoJS.PBKDF2(enckey, salt, {
    keySize: 256 / 32
});
var iv = CryptoJS.PBKDF2(enckey, salt, {
    keySize: 128 / 32
});
var secret = CryptoJS.enc.Base64.parse("messageforencryption");
var enc = CryptoJS.AES.encrypt(secret, key32Byte.toString(), {"iv": iv.toString()});
console.log(enc.toString());

У меня нет доступа, чтобы изменить уже написанный метод C #.Заранее спасибо за любую помощь.

...