小编Zen*_*hai的帖子

让Oracle的MD5与PHP的MD5相匹配

我正在尝试将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)

任何人都可以帮助我让两者相匹配吗?

php oracle md5

11
推荐指数
2
解决办法
1万
查看次数

Condensing Perl Transpose代码

我总是发现自己编写这样的代码:

my $var = $result[0];
my $var_changed = $var;
$var_changed =~ s/somepattern/somechange/g; 
Run Code Online (Sandbox Code Playgroud)

什么是更好的方法来做到这一点?并且'更好'我的意思是:减少打字,同时保持可理解.

谢谢.

perl

2
推荐指数
1
解决办法
227
查看次数

标签 统计

md5 ×1

oracle ×1

perl ×1

php ×1