如何判断一个字符串是否经过base64加密过

 我来答
翲燚
2016-09-12 · 知道合伙人软件行家
翲燚
知道合伙人软件行家
采纳数:436 获赞数:3030

向TA提问 私信TA
展开全部

        首先,Base64算不上是一种加密算法。

        Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,它的目的是用ASCII中定义的可见字符去表示任意的二进制数据。之所以要这样做,是因为计算机中很多数据是只能通过可见字符去传输的(比如我们的网站网址,比如一些面向字符的网络协议如SMTP等),但是这些情景有时由需要去传输二进制数据。基于这样的需要,诞生了Base64.

        简单来讲,Base64就是用下列总计64个字符:

A-Z

a-z

0-9

+

/

        去表示二进制数据。二进制数据以字节为组,一个字节8bit存在256个状态,而一个Base64字符只有64个状态。机智的人们于是规定,用每4个Base64字符去表示3个二进制字节,因为:

64 * 64 * 64 * 64 = 256 * 256 * 256

        因此,Base64字符串的长度必然是4的整数倍。此外,由于二进制的字节数不一定是3的整数倍,所以Base64字符串在结尾是可能有空的。这些空的状态,Base64引入第65个字符去表示:

=

        这也是为什么Base64很多都是以=或==结尾的。但是注意,也存在不以=或==结尾的Base64,只要编码的二进制字节数恰好被3给整除。


总结

        一般情况下,一个合法的Base64,有着以下特征:

  1. 字符串的长度为4的整数倍。

  2. 字符串的符号取值只能在A-Z, a-z, 0-9, +, /, =共计65个字符中,且=如果出现就必须在结尾出现。

就烦条0o
2018-07-29 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
1.标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;
2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);
3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;
4.严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-09-05
展开全部
应该是可以加的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式