2016-12-21 6 views
0

Вот код .netPHP Шифрование не соответствие с asp.net шифрования

public string GetMD5Hash(string name) { 
    MD5 md5 = new MD5CryptoServiceProvider(); 
    byte[] ba = md5.ComputeHash(Encoding.UTF8.GetBytes(name)); 
    StringBuilder hex = new StringBuilder(ba.Length * 2); 

    foreach (byte b in ba) 
     hex.AppendFormat("{0:x2}", b); 
    return Convert.ToString(hex); 
} 

и в PHP Я использую следующий код

class foobar { 

    public function str2hex($string) { 
     $hex = ""; 
     for ($i = 0; $i < strlen($string); $i++) 
      $hex .= (strlen(dechex(ord($string[$i]))) < 2) ? "0" . dechex(ord($string[$i])) : dechex(ord($string[$i]));  
     return $hex; 
    } 

    public function GetMD5($pStr) { 
     $data = mb_convert_encoding($pStr, 'UTF-16LE', 'UTF-8'); 
     $h = $this->str2hex(md5($data, true)); 
     return $h; 
    } 
} 

$foobar = new foobar; 
$nisha =$foobar->GetMD5('5698882'); 
echo "</br>"; 
echo $nisha; 

, но выход не совпадает с выходом шифровани .net, оба различны

ответ

0

К генералу съел md5 хэш строки в PHP, вам просто нужно использовать функцию md5() больше деталей на http://php.net/manual/en/function.md5.php

Вы можете использовать эти коды, чтобы получить MD5 хэш, который будет одинаковым для обоих .net и PHP

PHP md5 хэш

<?php 
echo md5('abcdefghijklmnopqrstuvwxyz'); 
?> 

Результат -> c3fcd3d76192e4007dfb496cca67e13b

.NET хэш md5

public string CalculateMD5Hash(string input) 

{ 

    // step 1, calculate MD5 hash from input 

    MD5 md5 = System.Security.Cryptography.MD5.Create(); 

    byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input); 

    byte[] hash = md5.ComputeHash(inputBytes); 


    // step 2, convert byte array to hex string 

    StringBuilder sb = new StringBuilder(); 

    for (int i = 0; i < hash.Length; i++) 

    { 

     sb.Append(hash[i].ToString(“x2”)); 

    } 

    return sb.ToString(); 

} 

Результат -> c3fcd3d76192e4007dfb496cca67e13b

+0

спасибо за ваш ответ стога но .net разработчик не может изменить свой код. Возможно ли, что мы можем реплицировать вышеуказанный код .net в php? –

+0

Можете ли вы дать мне хэш md5, используя код .net для строки abcdefghijklmnopqrstuvwxyz –