php 和 c# 编码生成不同的结果

问题描述 投票:0回答:0

php 和 c# 都产生不同的密钥,这使得我的 c# 编码软件很难激活。我有在 c# 上编码的软件,并试图通过 PHP 生成自动密钥。请帮帮我。这是我分享的代码

在c#中

public string GetEncryptedEmail(string strEmailAdd, int iHashCode)
        {

            char c = (char)iHashCode;
            int length = strEmailAdd.Length;
            char[] array = new char[length];
            for (int i = 0; i < length; i++)
            {
                array[i] = (char)(strEmailAdd[i] ^ c);
            }
            byte[] bytes = Encoding.UTF8.GetBytes(array);
            string mD5Hash = GetMD5Hash(bytes);
            if (mD5Hash.Length <= 0)
            {
               

                return "";
            }
            return mD5Hash;
        }
public string GetMD5Hash(byte[] byteInput)
        {
            try
            {
                byte[] array = new MD5CryptoServiceProvider().ComputeHash(byteInput);
                StringBuilder stringBuilder = new StringBuilder();
                for (int i = 0; i < array.Length; i++)
                {
                    stringBuilder.Append(array[i].ToString("X2"));
                }
                return stringBuilder.ToString();
            }
            catch (Exception arg)
            {
                return "";
            }
        }

在 PHP 中 -

function getEncryptedEmail($strEmailAdd, $iHashCode) {

    $c = chr($iHashCode);
    $length = strlen($strEmailAdd);
    $array = array();
    
    for ($i = 0; $i < $length; $i++) {
        $array[$i] = chr(ord($strEmailAdd[$i]) ^ ord($c));
    }
    
    $bytes = utf8_encode(implode('', $array));
    $mD5Hash = md5($bytes);

    if (strlen($mD5Hash) <= 0) {
        echo "Error in product activation.";
        return "";
    }

    return $mD5Hash;
}

附加信息-

我只能更改我的PHP代码。

无法更改我的 C# 代码。

两者给出不同的结果

c# php md5
© www.soinside.com 2019 - 2024. All rights reserved.