C# DES 加密
文献种类:专题技术总结文献;
开发工具与关键技术:VisualStudio2017、C#
作者:高俊杰 ;年级:1703;撰写时间:2019年2月5日
加密代码如下:
/// <summary>
/// DES数据加密
/// </summary>
/// <param name="targetValue">目标值</param>
/// <param name="key">密钥</param>
/// <returns>加密值</returns>
public ActionResult Encrypt(string targetValue, string key)
{
var returnValue = new StringBuilder();
var des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.Default.GetBytes(targetValue);
// 通过两次哈希密码设置对称算法的初始化向量
#pragma warning disable CS0618 // 类型或成员已过时
des.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(FormsAuthentication.HashPasswordForStoringInConfigFile(key, "md5").Substring(0, 8), "sha1").Substring(0, 8));
#pragma warning restore CS0618 // 类型或成员已过时
// 通过两次哈希密码设置算法的机密密钥
#pragma warning disable CS0618 // 类型或成员已过时
des.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile(password: FormsAuthentication.HashPasswordForStoringInConfigFile(key, "md5").Substring(0, 8), passwordFormat: "md5").Substring(0, 8));
#pragma warning restore CS0618 // 类型或成员已过时
var ms = new MemoryStream();
var cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
foreach (byte b in ms.ToArray())
{
returnValue.AppendFormat("{0:X2}", b);
}
var ss = returnValue.ToString();
return Json(ss, JsonRequestBehavior.AllowGet);
}
加密效果如下:
页面代码如下:
<div>
<label>DES数据加密</label>
<div>
<label>DES密钥:</label>
<div>
<input id="DESJMMY">
</div>
</div>
<div>
<label>加密前:</label>
<div>
<input id="DESJMQ">
</div>
</div>
<div>
<label>加密后:</label>
<div>
<input id="DESJMH">
</div>
</div>
<button id="DESJMQR" >确认</button>
</div>
JavaScript代码如下:
<script>
$("#DESJMQR").click(function () {
var targetValue = $("#DESJMQ").val().trim();
var key = $("#DESJMMY").val().trim();
if (targetValue != "" && key != "") {
$.post("/MD5JM/Encrypt", {
targetValue, targetValue,
key: key
}, function (data) {
$("#DESJMH").val(data);
if (targetValue == "") {
$("#DESJMH").val("");
}
});
} else {
layer.alert("请填写完整!", { icon: 0, title: "提示", offset: "100px" });
}
});
</script>
- c# 各种加密解密算法 MD5,Base64,DES,SHA256
- C#中使用DES和AES加密解密
- C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- c# DESEncrypt 加密、解密算法
- C# 加密解密(DES,3DES,MD5,Base64) 类
- c# DES 加密解密
- C与C#通讯加密之C语言DES的cbc pkcs7的实现
- Java加密和C#解密=>DES方法
- C# 加密解密(DES,3DES,MD5,Base64) 类
- [转]C# DES 加密/解密类库,支持文件和中文/UNICODE字符,返回BASE64编码字符串
- C#中使用DES和AES加密解密
- c# desencrypt加密解密
- C# 加密解密(DES,3DES,MD5,Base64) 类
- c#加密解密源码,md5、des、rsa
- C# des 加密 解密
- DES 加密解密C#&JAVA
- C#实现Diffie-Hellman(DH)算法可结合DES用于通信信息加密
- C#使用DES和AES实现加密解密功能示例
- C#中使用DES和AES加密解密
- c# 跟IOS DES 加密问题