2013-02-12 93 views
0
<?php 
    error_reporting(E_ALL^E_NOTICE); 
    $string = "123456"; 
    $replace_from = array(
    "1", 
    "2", 
    "3", 
    "4", 
    "5", 
    "6"); 
    $replace_to = array(
    "Al01", 
    "Br20", 
    "Ch03", 
    "De40", 
    "Ec05", 
    "Fo60"); 
    $hashed = str_replace($string, $replace_from, $replace_to); 
    echo "String: ". $string ."<br>"; 
    echo "Encrypted: ". $hashed ."<br>"; 
    echo "<br>"; 
    print_r($hashed); 
?> 

我得到自己的加密脚本

Encrypted: Array 

但我预计

Encrypted: Al01Br20Ch03De40Ec05Fo60 

如何获得哈希值作为回报?

+2

作为一个便笺,你为什么要创建自己的加密/散列函数? – 2013-02-12 18:25:31

+1

这种尝试是浪费时间,除非你正在做这个功课或自学。对于生产,你应该使用已经成熟的技术 – 2013-02-12 18:26:50

+3

我很抱歉,但如果你得到这个错了,它是我的意见,你不能和不应该试图创造一些加密。另外我看到这个问题被标记为[密码],所以我希望你不会在生产站点/项目附近的任何地方使用上面的代码。 – PeeHaa 2013-02-12 18:27:29

回答

6

你得到的参数为str_replace()错误:

$hashed = str_replace($replace_from, $replace_to, $string); 

正确的顺序是

  1. 字符串(数组)搜索
  2. (数组)替换
  3. 串,(数组),其中,以取代
+0

哇,这不得不说的是,PHP API在这方面最API的不同。我看到了好处,但它肯定会让我失望。 – 2013-02-12 21:49:02

+0

谢谢,你救了我的情况。 – user2065810 2013-02-13 16:25:50