using System.Security.Cryptography; static void Main(string[] args) {string rawString = "Make every second count.";string encryptedString = Encrypt3DES(rawString);string decryptedString = Decrypt3DES(encryptedString); Console.WriteLine($"Raw:{rawString}\nencrypted:{encryptedString}\ndecrypted:{decryptedString}"); Console.ReadLine(); }public static string Encrypt3DES(string rawString, string encryptKey = "serenityserenityserenityserenity", string encryptIv = "04D4DA042DE=") {using (SymmetricAlgorithm tripleDesProvider = new TripleDESCryptoServiceProvider()) {try{ tripleDesProvider.Key = Convert.FromBase64String(encryptKey); tripleDesProvider.IV = Convert.FromBase64String(encryptIv); tripleDesProvider.Mode = System.Security.Cryptography.CipherMode.CBC; tripleDesProvider.Padding = System.Security.Cryptography.PaddingMode.PKCS7;using (ICryptoTransform ct = tripleDesProvider.CreateEncryptor(tripleDesProvider.Key, tripleDesProvider.IV)) {byte[] bytes = Encoding.UTF8.GetBytes(rawString);using (MemoryStream ms = new MemoryStream()) {using (CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Write)) { cs.Write(bytes, 0, bytes.Length); cs.FlushFinalBlock(); cs.Close();string result = Convert.ToBase64String(ms.ToArray());return result; } } } }catch (Exception ex) {throw; } } }public static string Decrypt3DES(string rawString, string encryptKey = "serenityserenityserenityserenity", string encryptIv = "04D4DA042DE=") {using (SymmetricAlgorithm tripleDesProvider = new TripleDESCryptoServiceProvider()) {try{ tripleDesProvider.Key = Convert.FromBase64String(encryptKey); tripleDesProvider.IV = Convert.FromBase64String(encryptIv); tripleDesProvider.Mode = System.Security.Cryptography.CipherMode.CBC; tripleDesProvider.Padding = System.Security.Cryptography.PaddingMode.PKCS7;using (ICryptoTransform ct = tripleDesProvider.CreateDecryptor(tripleDesProvider.Key, tripleDesProvider.IV)) {byte[] bytes = Convert.FromBase64String(rawString);using (MemoryStream ms = new MemoryStream()) {using (CryptoStream cs = new CryptoStream(ms, ct, CryptoStreamMode.Write)) { cs.Write(bytes, 0, bytes.Length); cs.FlushFinalBlock(); cs.Close(); string result = Encoding.UTF8.GetString(ms.ToArray());return result; } } } }catch (Exception ex) {throw; } } }
Copyright © 2004-2024 Ynicp.com 版权所有 法律顾问:建纬(昆明)律师事务所 昆明市网翼通科技有限公司 滇ICP备08002592号-4