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字元