js加密
javascript"> async function encryptText(plaintext) {const textEncoder = new TextEncoder();const dataBuffer = textEncoder.encode(plaintext);const key = '123456789012345678901234567890ab'; const iv = '1234567890123456'; const keyBuffer = new Uint8Array(key.split('').map(c => c.charCodeAt(0)));const ivBuffer = new Uint8Array(iv.split('').map(c => c.charCodeAt(0)));const cryptoKey = await window.crypto.subtle.importKey('raw',keyBuffer,{ name: 'AES-CBC', length: 256 },false,['encrypt']);const encrypted = await window.crypto.subtle.encrypt({ name: 'AES-CBC', iv: ivBuffer },cryptoKey,dataBuffer);const encryptedArray = new Uint8Array(encrypted);return btoa(String.fromCharCode(...encryptedArray));}
public string DecryptAes( string encryptedData, string key,string iv){byte[] encryptedBytes = Convert.FromBase64String(encryptedData);using (Aes aes = Aes.Create()){aes.Key = Encoding.UTF8.GetBytes(key);aes.IV = Encoding.UTF8.GetBytes(iv);aes.Mode = CipherMode.CBC;aes.Padding = PaddingMode.PKCS7;ICryptoTransform decryptor = aes.CreateDecryptor(aes.Key, aes.IV);byte[] decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);return Encoding.UTF8.GetString(decryptedBytes);}}
public string EncryptAes(string content, string key, string iv){byte[] contentBytes = Encoding.UTF8.GetBytes(content);using (Aes aes = Aes.Create()){aes.Key = Encoding.UTF8.GetBytes(key);aes.IV = Encoding.UTF8.GetBytes(iv);aes.Mode = CipherMode.CBC;aes.Padding = PaddingMode.PKCS7;ICryptoTransform decryptor = aes.CreateEncryptor(aes.Key, aes.IV);byte[] encryptedBytes = decryptor.TransformFinalBlock(contentBytes, 0, contentBytes.Length);return Convert.ToBase64String(encryptedBytes);}}
js解密
javascript"> async function decryptText(ciphertext) {const key = '123456789012345678901234567890ab'; const iv = '1234567890123456'; const keyBuffer = new Uint8Array(key.split('').map(c => c.charCodeAt(0)));const ivBuffer = new Uint8Array(iv.split('').map(c => c.charCodeAt(0)));const encryptedArray = new Uint8Array(atob(ciphertext).split('').map(c => c.charCodeAt(0)));const cryptoKey = await window.crypto.subtle.importKey('raw',keyBuffer,{ name: 'AES-CBC', length: 256 },false,['decrypt']);const decrypted = await window.crypto.subtle.decrypt({ name: 'AES-CBC', iv: ivBuffer },cryptoKey,encryptedArray);const textDecoder = new TextDecoder();return textDecoder.decode(decrypted);}