您的位置:首页 > 编程语言 > C#

C# DES 加密

2019-03-29 19:55 36 查看

文献种类:专题技术总结文献;
开发工具与关键技术: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>

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: