第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AES 加密與 C# 解密與 crypto-js

AES 加密與 C# 解密與 crypto-js

蕪湖不蕪 2022-12-02 11:21:48
我正在嘗試使用 C# 加密字符串并使用 Angular crypto-js 庫對其進(jìn)行解密,但它給了我不同的輸出。我嘗試了不同的 c# aes 加密實(shí)現(xiàn),但 crypto-js 庫無法解密 c# 中的加密數(shù)據(jù)。感謝您的任何幫助。這是我的代碼程序.cs static void Main()    {        var r = EncryptString("exampleString", "examplePassword");        Console.Write(r);    } public static string EncryptString(string plainText, string passPhrase)    {        if (string.IsNullOrEmpty(plainText))        {            return "";        }        // generate salt        byte[] key, iv;        var salt = new byte[8];        var rng = new RNGCryptoServiceProvider();        rng.GetNonZeroBytes(salt);        DeriveKeyAndIv(passPhrase, salt, out key, out iv);        // encrypt bytes        var encryptedBytes = EncryptStringToBytesAes(plainText, key, iv);        // add salt as first 8 bytes        var encryptedBytesWithSalt = new byte[salt.Length + encryptedBytes.Length + 8];        Buffer.BlockCopy(Encoding.ASCII.GetBytes("Salted__"), 0, encryptedBytesWithSalt, 0, 8);        Buffer.BlockCopy(salt, 0, encryptedBytesWithSalt, 8, salt.Length);        Buffer.BlockCopy(encryptedBytes, 0, encryptedBytesWithSalt, salt.Length + 8, encryptedBytes.Length);        // base64 encode        return Convert.ToBase64String(encryptedBytesWithSalt);    }    private static void DeriveKeyAndIv(string passPhrase, byte[] salt, out byte[] key, out byte[] iv)    {        // generate key and iv        var concatenatedHashes = new List<byte>(48);        var password = Encoding.UTF8.GetBytes(passPhrase);        var currentHash = new byte[0];        var md5 = MD5.Create();        bool enoughBytesForKey = false;        // See http://www.openssl.org/docs/crypto/EVP_BytesToKey.html#KEY_DERIVATION_ALGORITHM        while (!enoughBytesForKey)
查看完整描述

1 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個贊

示例代碼試圖解密原始的未加密字符串,這看起來可能是在嘗試簡化發(fā)布問題的示例代碼時造成的錯誤?無論哪種方式,所需的步驟都不太困難,但需要替換 toString() 調(diào)用。


var data = "U2FsdGVkX1/Zvh/5BnLfUgfbg5ROSD7Aohumr9asPM8="; // Output from C#

let r2 = CryptoJS.enc.Utf8.stringify(CryptoJS.AES.decrypt(data, 'examplePassword'));

console.log(r2);


查看完整回答
反對 回復(fù) 2022-12-02
  • 1 回答
  • 0 關(guān)注
  • 507 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號