有没有哪种加密解密方法,加密后没有特殊字符的呢?

life923 2017-02-11 11:51:44
目前网上的加密解密方法 都是生成base64位 有特殊字符的
如hello 加密为 5F6xghkRikk=

怎么生成比如 hello 加密后生成 FDSFDSFDS543543GFDGF

没有特殊字符的呢?
...全文
1901 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2017-02-11
  • 打赏
  • 举报
回复
奇怪的讨论! base64 是编码,而不是加密 通常加密算法的结果中都含有不可打印字符,导致结果串不可读。 所以才有再用 base64 编码成可读串一说(3个字节扩展成4个字节) 当然你也可以直接用16进制表示(1个字节扩展成2个字节)
  • 打赏
  • 举报
回复
对于 byte[ ] 如果按照每 4 个 bit 来作为一个 ASCII 对应转换,那么每3个字节,你就会得到 6 个字符。而 Base64 只需要占用 4 个字符,显然是 Base64 短一些。在网络传输上有用! 那么你说的所谓的“目前网上的加密解密方法 都是生成base64位”,这是你上当受骗了。Base64就是一种将 byte[ ] 序列化为可读的、跨平台的字符串的手段。哪里算什么“加密解密”? 说加密解密,是蒙人的博客。
  • 打赏
  • 举报
回复
每4个字节的二进制数字转换为3个ASCII字符 ---> 每3个字节的二进制数字转换为4个ASCII字符 呵呵,上面把“3”跟“4”全都写反了。你自己更正一下吧!sorry 不过这个问题,并的不是什么“特殊字符”的问题。就是40几个基本 ASCII 码而已,并没有特殊字符。并且除了等号以外,其它都不是多余的符号。
  • 打赏
  • 举报
回复
实际上,例如“FDSFDSFDS543543GFDGF”这样的东西,是可以根据 byte[ ] 的每4个bit 来转换 ASCII 码的。但是它显然比 Base64 结果更长,更占用传输空间。
Poopaye 2017-02-11
  • 打赏
  • 举报
回复
base64就是64进制,所以字符范围是A-Za-z0-9+/ 2进制字符只有01 16进制字符范围是A-F0-9 你想用多少字符就是多少进制 进制转换总学过吧。
  • 打赏
  • 举报
回复
有一个非字母数字的ASCII符号(等号),那个不叫“特殊字符”。等号只会出现在最后,一个或者两个等号,用来将字符串长度补齐为3的倍数。例如你贴出的是12个字符,其实前11个字符就足以表示 Base64 背后的二进制数值,但是 Base64 想遵循(每4个字节的二进制数字转换为3个ASCII字符)的表现,它才在最后额外增加一个或者两个等号。 那么如果你不喜欢等号,删除掉最后的等好就好了。不过记得,当你将这样的字符串重新转为 byte[ ] 之前,补齐缺少的一个或者2个等号,使得字符串长度恰好是3的倍数。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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