如何在foreach循环中解密变量?

时间:2016-09-22 09:00:22

标签: php arrays encryption foreach

以下代码循环我的解密我不知道如何解密每个内部['post_text']。

https://gyazo.com/672cd615b86b3c107da7e2c386d3b2f9

if (!empty($_SESSION['room_id'])) {
    $getPosts = $verbinding->prepare("SELECT user_name, post_text FROM posts WHERE room_id = :room_id");
    $getPosts->bindParam(':room_id', $_SESSION['room_id']);
    $getPosts->execute();
    $posts = $getPosts->fetchAll(PDO::FETCH_ASSOC);
    foreach ($posts as $inner) {
        $username = $inner['user_name'];
        $text = $inner['post_text'];
        $um = "@4um:~$";
        echo "<br><div class = \"posts\">" . $username . "$um&nbsp" . decr($text) . " </div>";
    }

}

function decr($text){
    $iterations = 1;
    $salt = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
    $text = hash_pbkdf2("sha512", $text, $salt, $iterations, 512);
    echo $text;
}

2 个答案:

答案 0 :(得分:0)

您必须在$text函数

中返回变量decr()而不是echo
function decr($text){
    $iterations = 1;
    $salt = mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);
    $text = hash_pbkdf2("sha512", $text, $salt, $iterations, 512);
    return $text;
}

答案 1 :(得分:0)

如评论中所述,您无法解密哈希。为此,您需要使用加密算法,在保存前使用mcrypt_encrypt(),在显示时使用mcrypt_decrypt()

看到你已经散布了你的内容,就没有办法把它取回来。您需要重新开始并删除所有旧内容,以便执行您要执行的操作。