以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]md5加密  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=132858)

--  作者:智友软件工作室
--  发布时间:2019/3/31 18:22:00
--  [求助]md5加密
加密字符串随机,6位
加密字符4位
生成16位的md5

 就是把6位数作为加密的key值,去加密身份证的后四位 ,生成16位的md5

对方的加密函数是这样的,我要和他的算法一样对同一字符串的加密生成的相同的加密后的字符串,可以办到吗?

/// 加密数据 
   /// </summary> 
   /// <param name="Text"></param> 
   /// <param name="sKey"></param> 
   /// <returns></returns> 
   public static string Encrypt(string Text, string sKey) {
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();
    byte[] inputByteArray;
    inputByteArray = Encoding.Default.GetBytes(Text);
    des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(
    sKey, "md5").Substring(0, 8));
    des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(
    sKey, "md5").Substring(0, 8));
    System.IO.MemoryStream ms = new System.IO.MemoryStream();
    CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
    cs.Write(inputByteArray, 0, inputByteArray.Length);
    cs.FlushFinalBlock();
    StringBuilder ret = new StringBuilder();
    foreach(byte b in ms.ToArray()) {
    ret.AppendFormat("{0:X2}", b);
    }
    return ret.ToString();
   }
[此贴子已经被作者于2019/3/31 20:23:34编辑过]

--  作者:有点甜
--  发布时间:2019/4/1 9:19:00
--  

转换代码,请参考,细节自己调整

 

http://converter.telerik.com/

 

 


--  作者:有点甜
--  发布时间:2019/4/1 9:22:00
--  

比如

 

Public Function Encrypt(ByVal Text As String, ByVal sKey As String) As String
    Dim des As System.Security.Cryptography.DESCryptoServiceProvider = New System.Security.Cryptography.DESCryptoServiceProvider()
    Dim inputByteArray As Byte()
    inputByteArray = Encoding.[Default].GetBytes(Text)
    des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8))
    des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8))
    Dim ms As System.IO.MemoryStream = New System.IO.MemoryStream()
    Dim cs As System.Security.Cryptography.CryptoStream = New System.Security.Cryptography.CryptoStream(ms, des.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write)
    cs.Write(inputByteArray, 0, inputByteArray.Length)
    cs.FlushFinalBlock()
    Dim ret As StringBuilder = New StringBuilder()

    For Each b As Byte In ms.ToArray()
        ret.AppendFormat("{0:X2}", b)
    Next

    Return ret.ToString()
End Function