一直想要md5那种加密等长,又能解密的对称加密解密方法,于是有了md6。
第一步,去OT扣来think_encrypt和think_decrypt函数。
第二步,打造自己的md6:
function md6($str='',$de=false){
$key=('yourkey');
$char=('MDAwMDAwMDAwM');
if($str!=''){
if($de){
$str=$char.$str;
$str=think_decrypt($str,$key);
}else{
$str=think_encrypt($str,$key);
$str=str_replace($char, '',$str);
}
}
return $str;
}
用法举例:
function test(){
$str= '';
for($i=1;$i<1000;$i++){
$str=md6($i);
echo($str.' | '.md6($str,true).'<br />');
}
}
输出结果:
IKKdXY | 1
IKgdXY | 2
IKwdXY | 3
IN6dXY | 4
IOKdXY | 5
IOgdXY | 6
IOwdXY | 7
IR6dXY | 8
ISKdXY | 9
IKNeXY | 10
...
IKNebCzdqRv | 10000
IKNebCzdqhv | 10001
IKNebCzdqxv | 10002
IKNebCzdrBv | 10003
IKNebCzdrRv | 10004
IKNebCzdrhv | 10005
IKNebCzdrxv | 10006
IKNebCzdsZv | 10007
IKNebCzdspv | 10008
IKNebCzds5v | 10009
IKNebCzhqRv | 10010
...
IKNfbGzhqSpgqh2cg | 11110000
IKNfbGzhqSpgqh6cg | 11110001
IKNfbGzhqSpgqh-cg | 11110002
IKNfbGzhqSpgqiCcg | 11110003
IKNfbGzhqSpgqiGcg | 11110004
IKNfbGzhqSpgqiKcg | 11110005
IKNfbGzhqSpgqiOcg | 11110006
IKNfbGzhqSpgqiYcg | 11110007
IKNfbGzhqSpgqiccg | 11110008
IKNfbGzhqSpgqigcg | 11110009
IKNfbGzhqSpgrh2cg | 11110010
<3位数(数字和英文)加密后的密文长度为:6,
4-6位数(数字和英文)加密后的密文长度为:11,
7-9位数(数字和英文)加密后的密文长度为:17,
在一定范围内加密出来的密文是等长的,有什么作用就自己去发挥吧,我只能帮到这里了!