PHP [php] openssl encrypt/decrypt(AES-256-ECB)
페이지 정보
본문
function encrypt($plaintext, $password) {
$method = "AES-256-ECB";
$key = hash('sha256', $password, true);
$encrypt_iv = openssl_random_pseudo_bytes(16);
$ciphertext = openssl_encrypt($plaintext, $method, $key, OPENSSL_RAW_DATA, $encrypt_iv);
$hash = hash_hmac('sha256', $ciphertext . $encrypt_iv, $key, true);
return $encrypt_iv . $hash . $ciphertext;
}
function decrypt($ivHashCiphertext, $password) {
$method = "AES-256-ECB";
$decrypt_iv = substr($ivHashCiphertext, 0, 16);
$hash = substr($ivHashCiphertext, 16, 32);
$ciphertext = substr($ivHashCiphertext, 48);
$key = hash('sha256', $password, true);
if (!hash_equals(hash_hmac('sha256', $ciphertext . $decrypt_iv, $key, true), $hash)) return null;
return openssl_decrypt($ciphertext, $method, $key, OPENSSL_RAW_DATA, $decrypt_iv);
}
- 이전글[php] openssl encrypt/decrypt(AES-256-ECB) 22.08.09
- 다음글[웹브라우저] 빈페이지(about:blank), about:about, about:Tabs 22.08.07
댓글목록
등록된 댓글이 없습니다.