使用AES进行字符串解密

编程入门 行业动态 更新时间:2024-10-19 02:22:44
本文介绍了使用AES进行字符串解密的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

Hiya, 我正在寻找一种使用AES解密字符串的方法.我有加密密码,还有高级加密标准向量. 这是我进行密码学的第一步,因此,我们将不胜感激! 有人提供任何建议吗?

Hiya, I am looking for a way of decrypting a string with AES. I have the encryptedpassword and also the Advanced Encryption Standard Vector. This is my first step with cryptography so any help would be much appreciated! Anyone offer any advice?

推荐答案

也许会对您有帮助: 在C#中实施AES加密 Hi, maybe it will help you: Implementing AES encryption in C # /// <summary> /// Encrypts a string /// </summary> ///Text to be encrypted ///Password to encrypt with ///Salt to encrypt with ///Can be either SHA1 or MD5 ///Number of iterations to do ///Needs to be 16 ASCII characters long ///Can be 128, 192, or 256 /// <returns>An encrypted string</returns> public static string Encrypt(string plainText, string password, string salt = "Kosher", string hashAlgorithm = "SHA1", int passwordIterations = 2, string initialVector = "OFRna73m*aze01xY", int keySize = 256) { if (string.IsNullOrEmpty(plainText)) return ""; byte[] initialVectorBytes = Encoding.ASCII.GetBytes(initialVector); byte[] saltValueBytes = Encoding.ASCII.GetBytes(salt); byte[] plainTextBytes = Encoding.UTF8.GetBytes(plainText); PasswordDeriveBytes derivedPassword = new PasswordDeriveBytes (password, saltValueBytes, hashAlgorithm, passwordIterations); byte[] keyBytes = derivedPassword.GetBytes(keySize / 8); RijndaelManaged symmetricKey = new RijndaelManaged(); symmetricKey.Mode = CipherMode.CBC; byte[] cipherTextBytes = null; using (ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes, initialVectorBytes)) { using (MemoryStream memStream = new MemoryStream()) { using (CryptoStream cryptoStream = new CryptoStream(memStream, encryptor, CryptoStreamMode.Write)) { cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length); cryptoStream.FlushFinalBlock(); cipherTextBytes = memStream.ToArray(); memStream.Close(); cryptoStream.Close(); } } } symmetricKey.Clear(); return Convert.ToBase64String(cipherTextBytes); }

C#中AES解密的实现

The implementation of AES decryption in C #

/// <summary> /// Decrypts a string /// </summary> ///Text to be decrypted ///Password to decrypt with ///Salt to decrypt with ///Can be either SHA1 or MD5 ///Number of iterations to do ///Needs to be 16 ASCII characters long ///Can be 128, 192, or 256 /// <returns>A decrypted string</returns> public static string Decrypt(string cipherText, string password, string salt = "Kosher", string hashAlgorithm = "SHA1", int passwordIterations = 2, string initialVector = "OFRna73m*aze01xY", int keySize = 256) { if (string.IsNullOrEmpty(cipherText)) return ""; byte[] initialVectorBytes = Encoding.ASCII.GetBytes(initialVector); byte[] saltValueBytes = Encoding.ASCII.GetBytes(salt); byte[] cipherTextBytes = Convert.FromBase64String(cipherText); PasswordDeriveBytes derivedPassword = new PasswordDeriveBytes(password, saltValueBytes, hashAlgorithm, passwordIterations); byte[] keyBytes = derivedPassword.GetBytes(keySize / 8); RijndaelManaged symmetricKey = new RijndaelManaged(); symmetricKey.Mode = CipherMode.CBC; byte[] plainTextBytes = new byte[cipherTextBytes.Length]; int byteCount = 0; using (ICryptoTransform decryptor = symmetricKey.CreateDecryptor(keyBytes, initialVectorBytes)) { using (MemoryStream memStream = new MemoryStream(cipherTextBytes)) { using (CryptoStream cryptoStream = new CryptoStream(memStream, decryptor, CryptoStreamMode.Read)) { byteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length); memStream.Close(); cryptoStream.Close(); } } } symmetricKey.Clear(); return Encoding.UTF8.GetString(plainTextBytes, 0, byteCount); }

在这里您可以阅读有关它的信息: stackoverflow/questions/3226813/how-can-i-decrypt-a-string-using-aes-algorithm-in-c [ ^ ] stackoverflow/questions/202011/encrypt-decrypt-string-in-net [ ^ ] www.digizol/2009/10/java-encrypt- crypto-jce-salt.html [ ^ ] 问候, 亚历克斯 P/S.如果有帮助,请不要忘记投票:)

Here you can read about it: stackoverflow/questions/3226813/how-can-i-decrypt-a-string-using-aes-algorithm-in-c[^] stackoverflow/questions/202011/encrypt-decrypt-string-in-net[^] www.digizol/2009/10/java-encrypt-decrypt-jce-salt.html[^] Regards, Alex P/S. If it help you, do not forget to vote :)

我找到了一个示例此处 [ ^ ],这是Google上针对"c#aes"的第一个结果. I found a sample here[^], first result on Google for "c# aes".

更多推荐

使用AES进行字符串解密

本文发布于:2023-11-22 06:25:34,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1616315.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   AES

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!