Loading... 要在C#和Node.js中互相实现DES加密和解密,可以使用相同的算法和密钥来进行操作。下面是一个示例: C#中的DES加密解密示例: ```csharp using System; using System.Security.Cryptography; using System.Text; public class Program { public static void Main() { string originalText = "Hello, world!"; string key = "mySecretKey"; byte[] encryptedBytes = Encrypt(originalText, key); string encryptedText = Convert.ToBase64String(encryptedBytes); Console.WriteLine("Encrypted text: " + encryptedText); string decryptedText = Decrypt(encryptedBytes, key); Console.WriteLine("Decrypted text: " + decryptedText); } public static byte[] Encrypt(string plainText, string key) { byte[] keyBytes = Encoding.UTF8.GetBytes(key); byte[] plainBytes = Encoding.UTF8.GetBytes(plainText); using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) { des.Key = keyBytes; des.IV = keyBytes; using (MemoryStream memoryStream = new MemoryStream()) { using (CryptoStream cryptoStream = new CryptoStream(memoryStream, des.CreateEncryptor(), CryptoStreamMode.Write)) { cryptoStream.Write(plainBytes, 0, plainBytes.Length); cryptoStream.FlushFinalBlock(); return memoryStream.ToArray(); } } } } public static string Decrypt(byte[] encryptedBytes, string key) { byte[] keyBytes = Encoding.UTF8.GetBytes(key); using (DESCryptoServiceProvider des = new DESCryptoServiceProvider()) { des.Key = keyBytes; des.IV = keyBytes; using (MemoryStream memoryStream = new MemoryStream()) { using (CryptoStream cryptoStream = new CryptoStream(memoryStream, des.CreateDecryptor(), CryptoStreamMode.Write)) { cryptoStream.Write(encryptedBytes, 0, encryptedBytes.Length); cryptoStream.FlushFinalBlock(); return Encoding.UTF8.GetString(memoryStream.ToArray()); } } } } } ``` Node.js中的DES加密解密示例: ```javascript const crypto = require('crypto'); function encrypt(plainText, key) { const cipher = crypto.createCipheriv('des', key, key); let encrypted = cipher.update(plainText, 'utf8', 'base64'); encrypted += cipher.final('base64'); return encrypted; } function decrypt(encryptedText, key) { const decipher = crypto.createDecipheriv('des', key, key); let decrypted = decipher.update(encryptedText, 'base64', 'utf8'); decrypted += decipher.final('utf8'); return decrypted; } const originalText = 'Hello, world!'; const key = 'mySecretKey'; const encryptedText = encrypt(originalText, key); console.log('Encrypted text:', encryptedText); const decryptedText = decrypt(encryptedText, key); console.log('Decrypted text:', decryptedText); ``` 请注意,这只是一个基本的示例,用于演示如何在C#和Node.js中使用DES算法进行加密和解密。在实际应用中,应考虑更多的安全性和最佳实践,例如密钥管理、加密模式和填充方式的选择等。 希望以上解答对你有帮助。如果你有任何其他问题,请随时提问。 --- **<span style='color:#000000'>香港五网CN2网络云服务器链接:[www.tsyvps.com](https://www.tsyvps.com)</span>** **<span style='color:#DC143C'>蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。</span>** 最后修改:2023 年 07 月 15 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏