2012-06-18 123 views
1

我需要加密和解密短字符串(例如'product1234')。我用各种密码使用了mcrypt_encrypt和mcrypt_decrypt。问题在于,它总是将扩展字符引入结果字符串中,这会导致我无法控制的应用程序代码的某些方面出现问题。PHP:加密/解密短字符串

所以,问题是是否有一个密码可以减少加密字符串中使用的字符列表(即省略'+','\'或'/'等字符)。

+3

请告诉我们表现出的问题,因为这是很难想象的代码。这很可能是你可以通过'base64_encode()'纠正问题' –

+0

@Michael base64_encode将总是输出比原始长的字符串 – Mahn

+1

你想实现什么?加密安全性?只是缩短字符的数量? – ddlshack

回答

1

您可以base64_encode网络安全:

function base64url_encode($plainText) 
{ 
    return strtr(base64_encode($plainText), '+/=', '-_,'); 
} 

function base64url_decode($b64Text) 
{ 
    return base64_decode(strtr($b64Text, '-_,' '+/=')); 
} 

或者使用十六进制编码:

bin2hex($plainText); 

hex2bin($hexText); 
+0

工程就像一个魅力!谢谢! – jbsound

+0

谢谢。只有一个逗号被遗忘:return base64_decode(strtr($ b64Text,'-_,','+/=')); – PersianMan