[英]Generate a key in PHP for AES 256
如何使用PHP使用AES 256安全地生成適合散列數據的密鑰?
我嘗試了Googling,發現了大量有關如何使用PHP使用AES 256加密數據的信息,但是所有這些示例都使用了現有的預生成密鑰,而我需要在PHP中生成密鑰。
openssl-pkey-new()
函數正是您所需要的。
至於IV,您可以查看如何為AES CBC加密安全地生成IV? 建議使用openssl-random-pseudo-bytes
但是,如果您確實在尋找有用的頁面,可以使用Google“在PHP中實現AES”-首先,您將找到http://www.movable-type.co.uk/scripts/aes-php.html。教你一切你需要知道的...
如果您不想依賴庫,則可以在Linux / Unix計算機上使用此功能。 它與openssl-random-pseudo-bytes
:
<?php
$key_size = 256; //For a 256 bit key, you can use 128 or 512 as well.
$key = uuid_gen(($key_size / 8)); //8 bits in a byte
echo 'key length is ' .strlen($key) ."\n"; //The number of bytes
/* Returns Raw Binary */
function uuid_gen($length) {
$fp = @fopen('/dev/urandom','rb');
if ($fp !== FALSE) {
$result .= @fread($fp, $length);
@fclose($fp);
} else {
trigger_error('Can not open /dev/urandom.');
}
return $result;
}
從php7開始,您可以使用random_bytes()函數生成加密安全的偽隨機字節。
用於此功能的隨機性來源如下:
有關更多信息,請參見php手冊 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.