使用固定长度的盐加密字符串

时间:2015-08-31 04:14:39

标签: php encryption

我需要创建一个密码生成方法,其中用户传入字符串并获取使用SALT加密的密码。 当用户键入相同的字符串时,他们会获得相同的密码。

<?php

$textToEncrypt = "String passed by user";
$encryptionMethod = "AES-256-CBC"; 
$secretHash = "25c6c7ff35b9979bdsfdsgsdfsdf";

//To encrypt
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash);

//To Decrypt
$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretHash);

//Result
echo "Encrypted: $encryptedMessage\n";
echo "Decrypted: $decryptedMessage\n";

我需要一个长度为16或10的密码,并且可以选择字母和/或特殊字符参数。

1 个答案:

答案 0 :(得分:2)

我建议使用现有的方法。如果你自己滚动,有很多方法可以使它在加密时不安全(在这种情况下,特别是通过定时或功率差异攻击,这是不太可能但仍然)。这是一种适合您所要求的方法:

string hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = false ]] )

这是整个link