我正在尝试将PHP生成的MD5校验和与Oracle 10g生成的校验和进行比较.然而,似乎我正在将苹果与橙子进行比较.
这是我测试比较所做的:
//md5 tests
//php md5
print md5('testingthemd5function');
print '<br/><br/>';
//oracle md5
$md5query = "select md5hash('testingthemd5function') from dual";
$stid = oci_parse($conn, $md5query);
if (!$stid) {
$e = oci_error($conn);
print htmlentities($e['message']);
exit;
}
$r = oci_execute($stid, OCI_DEFAULT);
if (!$r) {
$e = oci_error($stid);
echo htmlentities($e['message']);
exit;
}
$row = oci_fetch_row($stid);
print $row[0];
Run Code Online (Sandbox Code Playgroud)
Oracle中的md5函数(在上面的查询中看到)使用'dbms_obfuscation_toolkit.md5'包(?)并且定义如下:
CREATE OR REPLACE FUNCTION PORTAL.md5hash (v_input_string in varchar2) return varchar2
is
v_checksum varchar2(20);
begin
v_checksum := dbms_obfuscation_toolkit.md5 (input_string => v_input_string);
return v_checksum;
end;
Run Code Online (Sandbox Code Playgroud)
我的PHP页面出现的是:
29dbb90ea99a397b946518c84f45e016
)Û¹©š9{”eÈOEà
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我让两者相匹配吗?
One*_*One 14
它返回原始字节,您需要将其转换为十六进制.
$x = unpack("H*", $row[0]);
echo $x[1];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11197 次 |
最近记录: |