linux windows des加密,.NET Core 关于 DES加密 解密 Windows的加密数据和Linux不一致。...

代码部分

//des 加密解密

public class CryptoHelper

{

private const string key = "66666des";

private const string iv = "des66666";

///

/// 使用DES加密

///

/// 明文

/// 返回密文

public static string DesEncode(string plain)

{

//把密钥转换成字节数组

byte[] keyBytes = Encoding.UTF8.GetBytes(key);

//把向量转换成字节数组

byte[] ivBytes = Encoding.UTF8.GetBytes(iv);

//声明1个新的DES对象

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

des.Mode = CipherMode.ECB;

//开辟一块内存流

MemoryStream msEncrypt = new MemoryStream();

//把内存流对象包装成加密流对象

CryptoStream csEncrypt = new CryptoStream(msEncrypt, des.CreateEncryptor(keyBytes, ivBytes), CryptoStreamMode.Write);

//把加密流对象包装成写入流对象

StreamWriter swEncrypt = new StreamWriter(csEncrypt);

//写入流对象写入明文

swEncrypt.WriteLine(plain);

//写入流关闭

swEncrypt.Close();

//加密流关闭

csEncrypt.Close();

//把内存流转换成字节数组,内存流现在已经是密文了

byte[] bytesCipher = msEncrypt.ToArray();

//内存流关闭

msEncrypt.Close();

//将字节数组转化成Base64字符串

return Convert.ToBase64String(bytesCipher);

}

///

/// 使用DES解密

///

/// 密文

/// 返回密文

public static string DesDeCode(string cipher)

{

//将密文通过Base64位还原成字节数组

byte[] cipherByte = Convert.FromBase64String(cipher);

//把密钥转换成字节数组

byte[] keyBytes = Encoding.UTF8.GetBytes(key);

//把向量转换成字节数组

byte[] ivBytes = Encoding.UTF8.GetBytes(iv);

//声明1个新的DES对象

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

des.Mode = CipherMode.ECB;

//开辟一块内存流,并存放密文字节数组

MemoryStream msDecrypt = new MemoryStream(cipherByte);

//把内存流对象包装成解密流对象

CryptoStream csDecrypt = new CryptoStream(msDecrypt, des.CreateDecryptor(keyBytes, ivBytes), CryptoStreamMode.Read);

//把解密流对象包装成写入流对象

StreamReader srDecrypt = new StreamReader(csDecrypt);

//明文=读出流的读出内容

string strPlainText = srDecrypt.ReadLine();

//读出流关闭

srDecrypt.Close();

//解密流关闭

csDecrypt.Close();

//内存流关闭

msDecrypt.Close();

//返回明文

return strPlainText;

}

}

被加密文字:admin

Windows得到的密文为:mpeF1AIykkU=

Linux得到的密文为:QDI3HuQF+SQ=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值