Я пытаюсь преобразовать метод шифрования 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 #.Заранее спасибо за любую помощь.