php 字符串可逆加密,求高手,一个可逆的字符串加密算法

如'abcdefghijklmnopqrstuvwxyz1234567890_-.'这个字符串加密后,只能由字符串和数字、-、_组成,小数点被转换成其他的了

我没看错的话,你的要求是“ 加密后的字符串由数字和字符组成”

我不知道这个“字符”你又会作何解释

把一个超出字母数字范围的字符非要用字母数字表示,还要不改变长度

“把大象放进冰箱里”不过是笑话而已,你也当真?

生成串只有字母数字的话,依据你红字部分的条件,不可能实现蓝字的要求

要求支持 汉字(非硬性要求),字母数字, 小数点等,加密后的字符串由数字和字符组成,最好加密后和加密前的 长度一样

如加密前的“www.qq.com”字符串

把一个超出字母数字范围的字符非要用字母数字表示,还要不改变长度

“把大象放进冰箱里”不过是笑话而已,你也当真?

base64不就可以将'abcdefghijklmnopqrstuvwxyz1234567890_-.'转换成纯数字和字母的吗?就算长度稍微长点 也可以的 就是感觉base64太长了

生成串只有字母数字的话,依据你红字部分的条件,不可能实现蓝字的要求

要求支持 汉字(非硬性要求),字母数字, 小数点等,加密后的字符串由数字和字符组成,最好加密后和加密前的 长度一样

如加密前的“www.qq.com”字符串

长度稍微长点 也可以

你了解一下字节的位(bit)知识就知道base64算是可视化非压缩加密的极限了

再想缩短就只能用压缩算法了

把一个超出字母数字范围的字符非要用字母数字表示,还要不改变长度

“把大象放进冰箱里”不过是笑话而已,你也当真?

base64不就可以将'abcdefghijklmnopqrstuvwxyz1234567890_-.'转换成纯数字和字母的吗?就算长度稍微长点 也可以的 就是感觉base64太长了

一个字节只能表示 256 种状态

所有的压缩算法都是将连续相同的片段以: 计数 + 片段 的方式存储

所以压缩并不是总是能减少尺寸的

base64转换的还带了/和=

需替换成-_

但是base64可以转换汉字等任意数据,每3个字符变4个,长了1/3。估计楼主认为太浪费了。

应该改成只转换指定的字符.

至少要能转换a-zA-Z0-9-_. 共65个合法字符。

而输出不能带点. 共64个合法字符,理论上至少会变长1/64。

base64转换的还带了/和=

需替换成-_

但是base64可以转换汉字等任意数据,每3个字符变4个,长了1/3。估计楼主认为太浪费了。

应该改成只转换指定的字符.

至少要能转换a-zA-Z0-9-_. 共65个合法字符。

而输出不能带点. 共64个合法字符,理论上至少会变长1/64。 理论上长1/64也可以 求算法

移位算法可以实现

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值