Php mcrypt 128位密钥最安全的密钥?

Php mcrypt 128位密钥最安全的密钥?,php,Php,mcrypt最安全的钥匙是什么 使用128位密钥意味着什么?那是多少个字符 我的钥匙是带数字和字母的32个字符 我正在使用mcrypt加密/解密登录到我的站点的用户的个人数据。最安全的密钥只是一组随机数据(二进制非常好),是的,128位密钥使用32个字符。一个nonce函数应该足以创建一个强键(如果你有妄想症,对它进行哈希运算会有帮助): 世上没有最安全的钥匙。它就像一个“密码”。 如果编码算法是对称的,则该键允许您对数据进行编码/解码 128位密钥只是由128位(16字节)组成的密钥。 在AS

mcrypt最安全的钥匙是什么

使用128位密钥意味着什么?那是多少个字符

我的钥匙是带数字和字母的32个字符


我正在使用mcrypt加密/解密登录到我的站点的用户的个人数据。

最安全的密钥只是一组随机数据(二进制非常好),是的,128位密钥使用32个字符。一个nonce函数应该足以创建一个强键(如果你有妄想症,对它进行哈希运算会有帮助):


世上没有最安全的钥匙。它就像一个“密码”。 如果编码算法是对称的,则该键允许您对数据进行编码/解码

128位密钥只是由128位(16字节)组成的密钥。 在ASCII码中,1字节=1个字符;但大多数密钥只是随机二进制数据,可以对其进行base64编码,从而得到24个字符的字符串表示

此外,它是一个php扩展,允许您使用同一接口使用多个编码算法。密钥的大小取决于算法。 有关选定算法的密钥大小,请参见

function nonce($l = 32, $raw = true){
    $ret = '';
    for($x = 0; $x < $l; $x++) $ret .= chr(mt_rand(0,255));
    return ($raw ? $ret : base64_encode($ret));
}
function hash($p, $s, $c = 5000, $kl = null, $a = 'SHA256'){
    $hl = strlen(hash($a, null, true));
    if(is_null($kl)) $kl = $hl;
    $kb = ceil($kl/$hl);
    $dk = '';
    for($block = 1; $block <= $kb; $block++){
        $ib = $b = hash_hmac($a, $s.pack('N', $block), $p, true);
        for($i = 0; $i < $c; $i++)
            $ib ^= ($b = hash_hmac($a, $b, $p, true));
        $dk .= $ib;
    }
    return substr($dk, 0, $kl);
}
$key = hash(nonce(), nonce(), 5000, 32);