Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将C#中使用的加密转换为PHP_C#_Php_Bytearray_Sha256 - Fatal编程技术网

将C#中使用的加密转换为PHP

将C#中使用的加密转换为PHP,c#,php,bytearray,sha256,C#,Php,Bytearray,Sha256,我一直在尝试将C#加密技术转换为PHP。C代码如下所示。我在C#方面没有经验。我不得不接管C语言的项目# 我已经在button click函数中对示例响应进行了注释。我尝试使用PHP实现相同的功能。请参考以下代码 。我发现在PHP中不需要生成字节数组,因为字符串在PHP中是字节数组 $originalSalt = 'pradeep14520'; $originalSalt .= '9A111B734E4F10469668'; hash("sha256",iconv(mb_dete

我一直在尝试将C#加密技术转换为PHP。C代码如下所示。我在C#方面没有经验。我不得不接管C语言的项目#

我已经在button click函数中对示例响应进行了注释。我尝试使用PHP实现相同的功能。请参考以下代码

。我发现在PHP中不需要生成字节数组,因为字符串在PHP中是字节数组

$originalSalt = 'pradeep14520';
    $originalSalt .= '9A111B734E4F10469668';
    hash("sha256",iconv(mb_detect_encoding($originalSalt, mb_detect_order(), false), "UTF-8", $originalSalt),true);
为了获得原始输出,我将最后一个参数作为false传递给哈希函数。 但是对于PHP和C,我得到了不同的输出#

请帮忙。 提前谢谢

根据Daniel Hilgarth提供的建议,我修改了代码并使其正常工作

   $password = 'pradeep14520';
$originalSalt = hex2bin('9A111B734E4F10469668');
echo    strtoupper(hash("sha256",mb_convert_encoding($password,"UTF-16LE").$originalSalt,false));

我希望它能帮助一些人。

这里的问题是C代码使用了。这是UTF-16,即每个字符返回两个字节,即使字符可以用ASCII表示


您需要在PHP中使用类似的字符串,或者根据PHP字符串的实际情况,将C代码更改为使用or。

在我提到的链接中,他们将其作为正确答案。没有什么比UTF编码更好的了。我尝试过不编码,但仍然显示相同的输出。@shanavascet:No。链接的问题使用
编码。UTF8
,正如我所说的。您正在使用
编码.Unicode
…您的问题是?
for PHP :afc80d1a6cae81e8f868b054dafbb74bdd86399d771fceef574e4b373506b704
for C#  :683CA8E00E8CE41A079B7C86CE4960AC2376CD85F2AEAB2E4DF99FFA7F7FA4F3
   $password = 'pradeep14520';
$originalSalt = hex2bin('9A111B734E4F10469668');
echo    strtoupper(hash("sha256",mb_convert_encoding($password,"UTF-16LE").$originalSalt,false));