• DES数据解密


            /// <summary>
            /// DES数据解密
            /// </summary>
            /// <param name="targetValue"></param>
            /// <param name="key"></param>
            /// <returns></returns>
            public static string Decrypt(string targetValue, string key = "test")
            {
                if (string.IsNullOrEmpty(targetValue))
                {
                    return string.Empty;
                }
                // 定义DES加密对象
                try
                {
                    var des = new DESCryptoServiceProvider();
                    int len = targetValue.Length / 2;
                    var inputByteArray = new byte[len];
                    int x, i;
                    for (x = 0; x < len; x++)
                    {
                        i = Convert.ToInt32(targetValue.Substring(x * 2, 2), 16);
                        inputByteArray[x] = (byte)i;
                    }
                    // 通过两次哈希密码设置对称算法的初始化向量   
                    des.Key = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile
                                                          (FormsAuthentication.HashPasswordForStoringInConfigFile(key, "md5").
                                                               Substring(0, 8), "sha1").Substring(0, 8));
                    // 通过两次哈希密码设置算法的机密密钥   
                    des.IV = Encoding.ASCII.GetBytes(FormsAuthentication.HashPasswordForStoringInConfigFile
                                                         (FormsAuthentication.HashPasswordForStoringInConfigFile(key, "md5")
                                                              .Substring(0, 8), "md5").Substring(0, 8));
                    // 定义内存流
                    var ms = new MemoryStream();
                    // 定义加密流
                    var cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);
                    cs.Write(inputByteArray, 0, inputByteArray.Length);
                    cs.FlushFinalBlock();
                    return Encoding.Default.GetString(ms.ToArray());
                }
                catch
                {
                }
                return string.Empty;
            }
    

      

  • 相关阅读:
    CF827D Best Edge Weight
    克鲁斯卡尔重构树总结
    模拟赛 提米树 题解 (DP+思维)
    luogu P4781 【模板】拉格朗日插值
    luogu P5826 【模板】子序列自动机
    子序列自动机
    luogu P1368 工艺 /【模板】最小表示法
    最小表示法
    SP1812 LCS2
    FZOJ 3602 T2
  • 原文地址:https://www.cnblogs.com/wohexiaocai/p/7050002.html
Copyright © 2020-2023  润新知