我有一个密码哈希存储在一个表中,并通过以下coldfusion脚本放在那里 –
#Hash(Encrypt(Form.UserPassword,GetSiteVars.EnCode))#
我试图在c#应用程序中添加一些外部功能.我希望能够利用已存在的数据,以便我可以对用户进行身份验证.有谁知道如何在c#中复制上面的coldfusion代码?
谢谢你的任何想法.
解决方法
我将保留下面的原始答案内容以供历史参考,但应该注意的是,这不是原始问题的有效答案.
相反,请参阅2011年1月@Terrapin在此主题中的最高投票答案.我希望OP看到这个并且可以更改已接受的答案.哎呀,我甚至会标记模组,看看是否可以做任何事情.
为了建立爱德华史密斯的答案,以及czuroski的后续评论,这是我的解决方案.
首先,你需要在C#中使用XOR函数,我从here开始并略微修改.
using System; using System.Collections.Generic; using System.Text; namespace SimpleXOREncryption { public static class EncryptorDecryptor { public static string EncryptDecrypt(string textToEncrypt,int key) { StringBuilder inSb = new StringBuilder(textToEncrypt); StringBuilder outSb = new StringBuilder(textToEncrypt.Length); char c; for (int i = 0; i < textToEncrypt.Length; i++) { c = inSb[i]; c = (char)(c ^ key); outSb.Append(c); } return outSb.ToString(); } } }
然后,取XOR的结果并对其进行base-64编码.拥有该字符串后,MD5将其哈希.结果应与原始代码段的结果匹配:
#Hash(Encrypt(Form.UserPassword,GetSiteVars.EnCode))#