如何在PHP中使用简单的密码短语对字符串进行编码和解码?

如何在PHP中使用简单的密码短语对字符串进行编码和解码?,php,decode,encode,encryption,Php,Decode,Encode,Encryption,我以为这很简单,但我找不到一个简单的解决办法 有没有一种方法可以用简单的密码对字符串进行编码和解码? 像这样的事情: $encoded = stringEncrypt('someText','simpleKey'); echo stringDecrypt($encoded,'simpleKey'); //outputs someText; 我试过了,但没有成功: function lime_encrypt($data,$key) { return base_convert(bin2he

我以为这很简单,但我找不到一个简单的解决办法

有没有一种方法可以用简单的密码对字符串进行编码和解码? 像这样的事情:

$encoded = stringEncrypt('someText','simpleKey');
echo stringDecrypt($encoded,'simpleKey'); //outputs someText;
我试过了,但没有成功:

function lime_encrypt($data,$key)
{
    return base_convert(bin2hex($data),16,10)  *   base_convert(bin2hex($key),16,10)  ;
}

function lime_decrypt($data,$key)
{
    return pack("H*",base_convert($data/base_convert(bin2hex($key),16,10),10,16));
}
我认为这是因为乘法返回的不是整数,而是数学表达式6.28414834514E+25

你知道我该怎么做吗


编辑 我重用了在堆栈溢出中找到的另一个代码,结果是:

function lime_encrypt($data,$key)
{
    return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($key), $data, MCRYPT_MODE_CBC, md5(md5($key))));
}

function lime_decrypt($data,$key)
{
    return rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($key), base64_decode($data), MCRYPT_MODE_CBC, md5(md5($key))), "\0");
}
但我最终遇到了一个致命错误:在linux centOS上使用php>5调用未定义的函数mcrypt_encrypt()

所以我宁愿保持简单,可以转移到其他人质身上


解决方案 最后,我使用了一个博客上的:

function lime_encrypt($data,$key)
{
    return openssl_encrypt($data, 'AES-128-CBC', $key,0,'fgrgfvcfghtfdrfg');
}

function lime_decrypt($data,$key)
{
    return openssl_decrypt($data, 'AES-128-CBC', $key,0,'fgrgfvcfghtfdrfg');
}
有没有一种方法可以用简单的密码对字符串进行编码和解码

退房。具体地说,就是功能


如果您使用的是PHP7.2,那么您还可以结合使用
钠加密加密加密()和
钠加密加密加密箱()
(使用
base64_encode()
)来实现一致(但不可互操作)的结果。

为什么需要简单?建议实际使用基于密码的加密(如PKCS#5中所定义)是否还不够?md5加密应该可以满足您的要求need@ScottFiander因为我不能使用md5,也不能设置自定义passphrase@ScottFiandermd5加密不存在(如果你是说执行md5来派生密钥,它本身是不安全的)@owlstead我对这方面非常陌生