base64加密的长度变化
‘壹’ base64 不能加密哪些字符串
base64加密的结果还是字符串吗
首先,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给整除。
‘贰’ apache base64 长度能改变么
没有办法,base64是编码而已,是对称的,不是像md5那样的非对称的加密算法能够讲任意长度字符加密后长固定长度。
‘叁’ base64加密 77u/是什么内容
你是指把 77u/ 进行加密后是什么内容吗?
加密后是 Nzd1Lw==
‘肆’ base64加密的结果还是字符串吗
base64加密的结果还是字符串吗
首先,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加密比原来的数据长度增加多少
首先Base64不是一种加密方式,只是一种编码。。然后长度呢,就是原来长度 * (4 / 3),不计最后一个或两个等于号的话。
‘陆’ 易语言 Base64的加密算法
代码-----------.版本 2.子程序 Base64编码, 字节集, 公开
.参数 原文, 字节集
.局部变量 余数, 整数型
.局部变量 三字节数据, 字节型, , "3"
.局部变量 码表, 字节集
.局部变量 len_x, 整数型
.局部变量 len_y, 整数型
.局部变量 结果, 字节集
.局部变量 i, 整数型
.局部变量 k, 整数型len_x = 取字节集长度 (原文)
.如果真 (len_x < 1)
返回 ({ })
.如果真结束
余数 = len_x % 3
.如果真 (余数 > 0)
原文 = 原文 + 取空白字节集 (3 - 余数)
len_x = len_x + 3 - 余数
.如果真结束
len_y = len_x × 4 ÷ 3
结果 = 取空白字节集 (len_y)
i = 1
码表 = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47 }
.变量循环首 (1, len_x, 3, k)
三字节数据 [1] = 原文 [k]
三字节数据 [2] = 原文 [k + 1]
三字节数据 [3] = 原文 [k + 2]
结果 [i] = 码表 [右移 (三字节数据 [1], 2) + 1]
结果 [i + 1] = 码表 [左移 (位与 (三字节数据 [1], 3), 4) + 右移 (三字节数据 [2], 4) + 1]
结果 [i + 2] = 码表 [左移 (位与 (三字节数据 [2], 15), 2) + 右移 (三字节数据 [3], 6) + 1]
结果 [i + 3] = 码表 [位与 (三字节数据 [3], 63) + 1]
i = i + 4
.变量循环尾 ()
.判断开始 (余数 = 2)
结果 [len_y] = 61
.判断 (余数 = 1)
结果 [len_y] = 61
结果 [len_y - 1] = 61
.默认.判断结束
返回 (结果).子程序 _按钮1_被单击编辑框1.加入文本 (到文本 (Base64编码 (到字节集 (编辑框1.内容))))
希望我可以帮到你
‘柒’ AES+BASE64算法加密后,密文是JfdQlodleoekfeoiefwoHokY== , 最后2个=,可以解密,3个=也可以解密出
=号是用用凑长度的..没有实际含意..只于有几个=号那就要看前面那些字母的长度...前面的字母长度加上等号的个数为3的整倍数...你说的后两个二号三个等号是不正确的..因为定义加密后的长度必需为3的整倍数
‘捌’ 如何判断一个字符串是否经过base64加密过
1.标准base64只有64个字符(英文大小写、数字和+、/)以及用作后缀等号;
2.base64是把3个字节变成4个可打印字符,所以base64编码后的字符串一定能被4整除(不算用作后缀的等号);
3.等号一定用作后缀,且数目一定是0个、1个或2个。这是因为如果原文长度不能被3整除,base64要在后面添加\0凑齐3n位。为了正确还原,添加了几个\0就加上几个等号。显然添加等号的数目只能是0、1或2;
4.严格来说base64不能算是一种加密,只能说是编码转换。使用base64的初衷。是为了方便把含有不可见字符串的信息用可见字符串表示出来,以便复制粘贴;
‘玖’ 汉字加密后的字符数会改变吗
会的
汉字加密之后会有新的字符,字符数是会随着改变的。
base64加密原理:
①将每三个字节作为一组,一共是24个二进制位。
②将这24个二进制位分为四小组,每个小组有6个二进制位。
③在每小组前面加两个00,扩展成32个二进制位,即四个字节。
④根据base64基础表,得到扩展后的每个字节的对应的base64符号。
‘拾’ 中文字符串转换(加密),base64转换后太长了
看看这个就知道为什么base64可以把二进制编码成字母了:
http://en.wikipedia.org/wiki/Base64
还有一个uuencode, 但是通常是对文件用的,编码完如下:
begin 600 a
,SM+*Q];0N?K(RPT*
`
end
如果只算第二,三行,一共不到20字符