Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该在加密中使用哪个PHP7.2函数和哪个加密算法来获取密文中的16个十六进制字符?_Php_Encryption - Fatal编程技术网

我应该在加密中使用哪个PHP7.2函数和哪个加密算法来获取密文中的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 =

我需要加密16个十六进制字符,并在密文中获得16个十六进制字符, 我已经尝试过使用openssl的des,在加密16个十六进制字符后,我应该添加或更改什么以获得16个十六进制字符

<?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个十六进制密文字符。密文将转换回十进制以获得生成的令牌。另一方面,在电能表上,我将简单地反转这个过程。有什么建议或选择吗?