I am having the code to encrypt data in Angular, but I don't know how decrypt it on the server side.
Angular code
public static getEncryptedInfo(dataString): string {
let password = environment.encryptionKey;
var text = dataString.toString(CryptoJS.enc.Utf8)
var encrypted = CryptoJS.AES.encrypt(text, password).toString();
const encodedComponent = encodeURIComponent(encrypted).toString();
return encodedComponent;
}
Using encryptionKey=12345
Encrypted As
U2FsdGVkX19klqZyBO7JyNzfxCBxAizFPkVYX%2Bb%2BUNs%2FVGEcr%2Fcxz3JmQcEgiojQ
in Angular, and I pass this encrypted value to the server side.
I try this reference also decrypting it in C# but I am getting an error
public static string Decrypt(string plainText)
{
RijndaelManaged aes = new RijndaelManaged();
string decodeString = System.Web.HttpUtility.UrlDecode(plainText);
var base64Decode = Encoding.UTF8.GetString(Convert.FromBase64String(decodeString));
// var inputArray = Convert.FromBase64String(decodeString);
ICryptoTransform AESDecrypt = aes.CreateDecryptor();
var de = AESDecrypt.TransformFinalBlock(base64Decode, 0, base64Decode.Length);
return encoding.GetString(de);
}
public static string DecryptText(string EncryptedText)
{
if (string.IsNullOrEmpty(EncryptedText))
{
return "";
}
else
{
RijndaelManaged aes = new RijndaelManaged();
string decodeString = System.Web.HttpUtility.UrlDecode(EncryptedText);
var base64Decode = Encoding.UTF8.GetString(Convert.FromBase64String(decodeString));
Byte[] outputBytes = StringToByteArray(base64Decode);
var bytesToDecrypt = Convert.FromBase64String(EncryptedText);
CryptoJS.AES.decrypt(encodedBytes, Secretkey).toString(CryptoJS.enc.Utf8)
var actualText = Encoding.UTF8.GetString(base64Decode);
var de = base64Decode.Substring(0, base64Decode.Length - DecryptionKey.Length);
return de;
}
}
Did I miss anything?
encodedBytesis used without declaring or giving a value, etc. Please provide a minimal reproducible example and explain what error you’re getting.