我需要加密和解密短字符串(例如'product1234')。我用各种密码使用了mcrypt_encrypt和mcrypt_decrypt。问题在于,它总是将扩展字符引入结果字符串中,这会导致我无法控制的应用程序代码的某些方面出现问题。PHP:加密/解密短字符串
所以,问题是是否有一个密码可以减少加密字符串中使用的字符列表(即省略'+','\'或'/'等字符)。
我需要加密和解密短字符串(例如'product1234')。我用各种密码使用了mcrypt_encrypt和mcrypt_decrypt。问题在于,它总是将扩展字符引入结果字符串中,这会导致我无法控制的应用程序代码的某些方面出现问题。PHP:加密/解密短字符串
所以,问题是是否有一个密码可以减少加密字符串中使用的字符列表(即省略'+','\'或'/'等字符)。
您可以base64_encode
网络安全:
function base64url_encode($plainText)
{
return strtr(base64_encode($plainText), '+/=', '-_,');
}
function base64url_decode($b64Text)
{
return base64_decode(strtr($b64Text, '-_,' '+/='));
}
或者使用十六进制编码:
bin2hex($plainText);
hex2bin($hexText);
工程就像一个魅力!谢谢! – jbsound
谢谢。只有一个逗号被遗忘:return base64_decode(strtr($ b64Text,'-_,','+/=')); – PersianMan
请告诉我们表现出的问题,因为这是很难想象的代码。这很可能是你可以通过'base64_encode()'纠正问题' –
@Michael base64_encode将总是输出比原始长的字符串 – Mahn
你想实现什么?加密安全性?只是缩短字符的数量? – ddlshack