如何对字符串进行可逆运算,得到由数字和小写字母组成的字符串?

www_aspsun_com 2004-11-09 11:08:33
就好像MD5算出来得一样,但是要可逆的。

算出来的字符串要能还原,但是对于长度不限,不过最好能够固定长度,或者不超过某个固定长度。
...全文
239 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mikespook 2004-11-10
  • 打赏
  • 举报
回复
BASE64编码后将所有符号都进行替换~~~比如=替换成1,同时将原先有的1都替换成11。
解码时,先将独立的1替换成=,再将所有连续的多个1都删掉一个1,然后BASE64反编码就可以了~~~

上面的替换算法是NOVELL网最早的一种协议的算法~~~不是我乱编的,别骂我~~
-神仙- 2004-11-10
  • 打赏
  • 举报
回复
base64
xuzuning 2004-11-10
  • 打赏
  • 举报
回复
<?php
$s = "算出来的字符串要能还原,但是对于长度不限,不过最好能够固定长度,或者不超过某个固定长度。";
//编码
echo $t = strtolower(str_replace('%','',urlencode($s)));
//解码
echo urldecode(preg_replace('/\w\w/','%\\0',$t));
?>
ice_berg16 2004-11-10
  • 打赏
  • 举报
回复
简单的方法就是根据一个字符串对目标串进行各种运算,当然算法你可以随便怎么算都可以。
只要你能保证能算回来,
xuzuning 2004-11-10
  • 打赏
  • 举报
回复
“任何编码如果想要可逆,其长度肯定不小于原始长度”
非也!压缩也是一种编码方式,其长度通常就小于原始长度

base64编码有现成的算法,无须自己编写。既然不能符合你的要求,那么可就要自己编写了
最简单的就是取十六进制的机器码值了,长度将是原串的两倍
linyang0106linyang 2004-11-10
  • 打赏
  • 举报
回复
ding 一下
www0aspsun0com 2004-11-10
  • 打赏
  • 举报
回复
是啊,但是base64会产生大小写字母和加号等字符,不满足我的由数字和小写字母组成的条件。

我的意思只要不是算出来的长度过分长就可以了,我一般原始字符串也就10几个字符。
stan23 2004-11-10
  • 打赏
  • 举报
回复
任何编码如果想要可逆,其长度肯定不小于原始长度
不然就像照相一样,相片永远还原不到实物
xuzuning 2004-11-10
  • 打赏
  • 举报
回复
“就好像MD5算出来得一样,但是要可逆的。”
注意md5得到的是特征串,所以可定长、不可逆

“算出来的字符串要能还原,但是对于长度不限,不过最好能够固定长度,或者不超过某个固定长度。”
可逆可用编码或加密算法,但都不能保证定长除非是一个天文数字的长度

既然“希望越简单越好,效率越高越好,是为了方便存储,无所谓容不容易破解”
那么只需用base64编码即可
jxflll 2004-11-10
  • 打赏
  • 举报
回复
帮你顶一下先。学习。
www0aspsun0com 2004-11-10
  • 打赏
  • 举报
回复
感谢各位

唠叨老大,你的代码我测试一下,有点问题啊,就拿这个页面的地址测试:
<?php
$s = "http://community.csdn.net/Expert/topic/3537/3537595.xml?temp=.2341425";
//编码
echo $t = strtolower(str_replace('%','',urlencode($s)));
//解码
echo urldecode(preg_replace('/\w\w/','%\\0',$t));
?>

生成
http3a2f2fcommunity.csdn.net2fexpert2ftopic2f35372f3537595.xml
3ftemp3d.2341425%ht%tp://%co%mm%un%ity.%cs%dn.%ne%t2?xp%er%t2%ft%op%ic/57/57Y5.%xm%l3%ft%em%p3d.#AB5

即含有.字符,也不能还原啊
-神仙- 2004-11-10
  • 打赏
  • 举报
回复

发错贴了...............
-神仙- 2004-11-10
  • 打赏
  • 举报
回复
先不传
www0aspsun0com 2004-11-09
  • 打赏
  • 举报
回复
希望越简单越好,效率越高越好,是为了方便存储,无所谓容不容易破解

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧