在实际项目中,往往前端和后端使用不同的语言。比如使用C#开发客户端,使用Java开发服务器端。有时出于安全性考虑需要将字符加密传输后,由服务器解密获取。本文介绍一种采用DES算法的C#与Java同步加密解密的代码。
C#端代码:(注意:DES的秘钥采用8位字符)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using System.Threading.Tasks;
using System.Security.Cryptography;
using System.IO;
namespace ChatDemo.util
{
public static class PasswordHelper
{
///<summary><![CDATA[字符串DES加密函数]]></summary>
///<param name="str"><![CDATA[被加密字符串 ]]></param>
///<param name="key"><![CDATA[密钥 ]]></param>
///<returns><![CDATA[加密后字符串]]></returns>
public static string EncodeDES(string str, string key)
{
try
{
DESCryptoServiceProvider provider = new DESCryptoServiceProvider();
provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8));
provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8));
byte[] bytes = Encoding.GetEncoding("UTF-8").GetBytes(str);