MVC DES CBC模式加密
文献种类:专题技术总结文献;
开发工具与关键技术:VisualStudio2017、C#
作者:高俊杰 ;年级:1703;撰写时间:2019年1月18日
DES加密块链模式CBC的特点:
代码如下:
- 1.加密的密文长度为64位(即8个字节);
- 2.当相同的明文使用同样的密钥和初始向量的时候会产生相同的密文;
- 3.密文块要依赖以前的操作结果,因此,密文块不能重新进行排列;
- 4.可以使用不同的初始化向量来避免相同的明文产生相同的密文,可以一定程度上抵抗字典攻击;
- 5.当一个错误发生以后,当前和以后的密文都会受到影响;
/// <summary>
/// DES CBC模式加密
/// </summary>
/// <param name="aStrString">待加密的字符串</param>
/// <param name="aStrKey">密钥</param>
/// <param name="aStrIv">向量:只有在CBC加密模式下才适用</param>public ActionResult Encrypt3DES(string aStrString, string aStrKey, string aStrIv)
{
CipherMode CbcMode = CipherMode.CBC;//运算模式
try
{
var des = new TripleDESCryptoServiceProvider
{
Key = Encoding.UTF8.GetBytes(aStrKey),//对密钥进行编码
Mode = CbcMode//设置运算模式
};
if (CbcMode == CipherMode.CBC)//判断运算模式是不是CBC模式
{
des.IV = Encoding.UTF8.GetBytes(aStrIv);//对向量进行编码
}
var desEncrypt = des.CreateEncryptor();//用密钥和向量创建对称加密器对象
byte[] buffer = Encoding.UTF8.GetBytes(aStrString);//对待加密的字符串进行编码
var bStrString = Convert.ToBase64String(desEncrypt.TransformFinalBlock(buffer, 0, buffer.Length));//转换表示形式
return Json(bStrString, JsonRequestBehavior.AllowGet);
}
catch (Exception)
{
return Json("failed", JsonRequestBehavior.AllowGet);
}
}
效果图如下:
注意:密钥为24位,向量为8位
页面代码如下:
<div>
<label>DES数据加密</label>
<div>
<label>DES密钥:</label>
<div>
<input id="DESJMMY">
</div>
</div>
<div>
<label>DES向量:</label>
<div>
<input id="DESJMXL">
</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>
- 在iOS9 中,苹果将原http协议改成了https协议,使用 TLS1.2 SSL加密请求数据。要使用HTTP要修改PTLIST
- C#实现微信AES-128-CBC加密数据的解密
- 加密货币市值超越摩根大通
- 电信级的RSA加密后的密码的破解方法
- Cocos2d-x使用Luajit将Lua脚本编译为bytecode,从而实现加密
- 对称加密的例子(DES)——直接加密和解密字符串
- shell加密工具shc的安装和使用
- 对称加密与非对称加密
- 非对称加密
- quick-cocos2d-x基于源码加密打包功能的更新策略(2)
- `cocos2dx非完整` 添加xxtea加密模块
- 完整的数据加密及身份认证流程
- base64加密和解密
- sqlcipher加密数据库
- 全同态加密(2)
- Android 初学者之不对称加密工具类RSAHelper
- 20150528 UI考试项目中,使用SHAI加密,生成请求URL
- 不用任何软件用cmd的命令加密winXP文件夹
- Swift MD5 加密字符串
- MD5,base64 等加密和转码工具