Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.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
将VBA.NET函数转换为PHP时遇到问题_Php_Vb.net - Fatal编程技术网

将VBA.NET函数转换为PHP时遇到问题

将VBA.NET函数转换为PHP时遇到问题,php,vb.net,Php,Vb.net,下面有一个用VBA.NET编写的函数,我正在尝试将其转换为PHP。我主要是一名PHP开发人员,我对VB也几乎一无所知 <% Public Shared Function ComputeHash(ByVal Key As String) As String Dim objSHA1 As New SHA1CryptoServiceProvider objSHA1.ComputeHash(System.Text.Encoding.UTF8.GetBytes(Key.To

下面有一个用VBA.NET编写的函数,我正在尝试将其转换为PHP。我主要是一名PHP开发人员,我对VB也几乎一无所知

<%

Public Shared Function ComputeHash(ByVal Key As String) As String
    Dim objSHA1 As New SHA1CryptoServiceProvider
        objSHA1.ComputeHash(System.Text.Encoding.UTF8.GetBytes(Key.ToCharArray))
    Dim buffer() As Byte = objSHA1.Hash
    Dim HashValue As String = System.Convert.ToBase64String(buffer)
    Return HashValue
End Function

%>
但是,它不会产生与VB函数
ComputeHash()
相同的结果。难道没人知道我做错了什么吗

在两种语言上执行的示例:

VBA.NET

string = "orange45877687459999SENTRYORD01154321"

ComputeHash(string) // Returns = WbwSWEBzPqgo9C4nZmGwHhd/FBQ=
PHP


您需要指示PHP通过将TRUE参数传递给哈希函数,以字节而不是十六进制格式返回SHA1哈希:

function compute_hash($string){
    return base64_encode(sha1($string, TRUE));
}

您的目标是什么??你想在@MASIDDIQUI中返回sha1的散列吗?不,事实上并没有那么简单。不仅仅是散列本身。我在PHPC中寻找
ComputeHash()
的精确等式您可以发布一些您收到的示例输入和输出吗?不要忘记函数中的utf8编码?返回base64_编码(utf8_编码(sha1($string))@HankyPanky添加了两种语言的输出哈希示例
$string = "orange45877687459999SENTRYORD01154321";

compute_hash(string) // Returns = NTliYzEyNTg0MDczM2VhODI4ZjQyZTI3NjY2MWIwMWUxNzdmMTQxNA== (but I need "WbwSWEBzPqgo9C4nZmGwHhd/FBQ=")
function compute_hash($string){
    return base64_encode(sha1($string, TRUE));
}