比较C#和ColdFusion(CFMX_COMPAT)之间的密码哈希值

前端之家收集整理的这篇文章主要介绍了比较C#和ColdFusion(CFMX_COMPAT)之间的密码哈希值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个密码哈希存储在一个表中,并通过以下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))#

猜你在找的C#相关文章