c#里面的AES加密解密

cgdf 9年前發布 | 1K 次閱讀 C#

C#, Java, PHP, Python和Javascript幾種語言的AES加密解密實現
更多
1
AES
Javascript
Java
C#
Python
PHP
c#里面的AES加密解密

在visual studio中寫的c#代碼

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography;

namespace test { class Class1 { static void Main(string[] args) { Console.WriteLine("I am comming"); String source = "Test String"; String encryptData = Class1.Encrypt(source, "1234567812345678", "1234567812345678"); Console.WriteLine("=1=="); Console.WriteLine(encryptData); Console.WriteLine("=2=="); String decryptData = Class1.Decrypt("2fbwW9+8vPId2/foafZq6Q==", "1234567812345678", "1234567812345678"); Console.WriteLine(decryptData);

        Console.WriteLine("=3==");

        Console.WriteLine("I will go out");
    }

    public static string Encrypt(string toEncrypt, string key, string iv)
    {
        byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
        byte[] ivArray = UTF8Encoding.UTF8.GetBytes(iv);
        byte[] toEncryptArray = UTF8Encoding.UTF8.GetBytes(toEncrypt);
        RijndaelManaged rDel = new RijndaelManaged();
        rDel.Key = keyArray;
        rDel.IV = ivArray;
        rDel.Mode = CipherMode.CBC;
        rDel.Padding = PaddingMode.Zeros;
        ICryptoTransform cTransform = rDel.CreateEncryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
        return Convert.ToBase64String(resultArray, 0, resultArray.Length);
    }

    public static string Decrypt(string toDecrypt, string key, string iv)
    {
        byte[] keyArray = UTF8Encoding.UTF8.GetBytes(key);
        byte[] ivArray = UTF8Encoding.UTF8.GetBytes(iv);
        byte[] toEncryptArray = Convert.FromBase64String(toDecrypt);
        RijndaelManaged rDel = new RijndaelManaged();
        rDel.Key = keyArray;
        rDel.IV = ivArray;
        rDel.Mode = CipherMode.CBC;
        rDel.Padding = PaddingMode.Zeros;
        ICryptoTransform cTransform = rDel.CreateDecryptor();
        byte[] resultArray = cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
        return UTF8Encoding.UTF8.GetString(resultArray);
    }
}

}</pre>

其中加密后以及解密后的字符串都能成功打印,但Console.WriteLine("=3==");之后的輸出就沒有了,最后輸出個線程返回值0,然后就沒有然后了。c#不懂,就不深究了,就已執行的部分,是符合要求了。

 本文由用戶 cgdf 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!