我应该在加密中使用哪个PHP7.2函数和哪个加密算法来获取密文中的16个十六进制字符?
我需要加密16个十六进制字符,并在密文中获得16个十六进制字符, 我已经尝试过使用openssl的des,在加密16个十六进制字符后,我应该添加或更改什么以获得16个十六进制字符我应该在加密中使用哪个PHP7.2函数和哪个加密算法来获取密文中的16个十六进制字符?,php,encryption,Php,Encryption,我需要加密16个十六进制字符,并在密文中获得16个十六进制字符, 我已经尝试过使用openssl的des,在加密16个十六进制字符后,我应该添加或更改什么以获得16个十六进制字符 <?php $key = 'qwetyasdftrewqasdcxz'; function my_encrypt($data, $key) { $encryption_key = base64_decode($key); $iv = '11111111'; $encrypted =
<?php
$key = 'qwetyasdftrewqasdcxz';
function my_encrypt($data, $key) {
$encryption_key = base64_decode($key);
$iv = '11111111';
$encrypted = openssl_encrypt($data, 'des', $encryption_key, 0, $iv);
return base64_encode($encrypted );
}
function my_decrypt($data, $key) {
$encryption_key = base64_decode($key);
$iv = '11111111';
$encrypted_data=base64_decode($data);
return openssl_decrypt($encrypted_data, 'des', $encryption_key, 0, $iv);
}
$password_plain = 0x34adeb98761a2b;
echo $password_plain . "<br>";
$password_encrypted = my_encrypt($password_plain, $key);
echo $password_encrypted . "<br>";
$password_decrypted = my_decrypt($password_encrypted, $key);
echo $password_decrypted . "<br>";
我需要加密16个十六进制字符,并在密文中获得16个十六进制字符
看起来像是一个例子
为什么输入和输出都需要16个十六进制字符?目前,您的运营需求已经注定了
在我看来,您正在存储密码。加密通常是错误的工作工具。而是调查
但是,如果确实需要加密字符串,并且希望加密是安全的,则必须接受输出比输入长的事实
原因是,加密本身就是一种安全性。您需要某种方法来确保加密消息的完整性,以防止危及消息机密性的攻击
最好的办法就是质疑你的要求。为什么我需要输入16个十六进制字符?为什么我需要输出16个十六进制字符
另外,不要使用DES或三重DES。我做了一些更改,我需要您的帮助@将军,你不能。至少不安全,这是加密某物的全部目的。您总是需要一个IV或nonce,它至少是另一个12字节24十六进制字符。也不要使用DES,使用AES。DES可能会被轻微损坏。我正在开发电能表令牌生成系统,我的令牌要求三个输入以十六进制计量,令牌和单位值以十二进制计量,稍后我将转换为十六进制。在连接三个输入后,我会将其转换为十六进制字符,这将是16个十六进制字符,然后我需要加密十六进制值以获得16个十六进制密文字符。密文将转换回十进制以获得生成的令牌。另一方面,在电能表上,我将简单地反转这个过程。有什么建议或选择吗?