我需要创建一个密码生成方法,其中用户传入字符串并获取使用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的密码,并且可以选择字母和/或特殊字符参数。
答案 0 :(得分:2)
我建议使用现有的方法。如果你自己滚动,有很多方法可以使它在加密时不安全(在这种情况下,特别是通过定时或功率差异攻击,这是不太可能但仍然)。这是一种适合您所要求的方法:
string hash_pbkdf2 ( string $algo , string $password , string $salt , int $iterations [, int $length = 0 [, bool $raw_output = false ]] )
这是整个link