1樓:匿名使用者
1.標準base64只有64個字元(英文大小寫、數字和+、/)以及用作字尾等號;
2.base64是把3個位元組變成4個可列印字元,所以base64編碼後的字串一定能被4整除(不算用作字尾的等號);
3.等號一定用作字尾,且數目一定是0個、1個或2個。這是因為如果原文長度不能被3整除,base64要在後面新增\0湊齊3n位。
為了正確還原,新增了幾個\0就加上幾個等號。顯然新增等號的數目只能是0、1或2;
4.嚴格來說base64不能算是一種加密,只能說是編碼轉換。使用base64的初衷。是為了方便把含有不可見字串的資訊用可見字串表示出來,以便複製貼上;
2樓:翲燚
首先,base64算不上是一種加密演算法。
base64是網路上最常見的用於傳輸8bit位元組**的編碼方式之一,它的目的是用ascii中定義的可見字元去表示任意的二進位制資料。之所以要這樣做,是因為計算機中很多資料是隻能通過可見字元去傳輸的(比如我們的****,比如一些面向字元的網路協議如smtp等),但是這些情景有時由需要去傳輸二進位制資料。基於這樣的需要,誕生了base64.
簡單來講,base64就是用下列總計64個字元:
a-za-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,有著以下特徵:
字串的長度為4的整數倍。
字串的符號取值只能在a-z, a-z, 0-9, +, /, =共計65個字元中,且=如果出現就必須在結尾出現。
如何判斷一個字串是否經過了base64
3樓:匿名使用者
唯一的麻煩可能是要選擇字符集。
1.標準base64只有64個字元(英文大小寫、數字和+、/)以及用作字尾等號;
2.base64是把3個位元組變成4個可列印字元,所以base64編碼後的字串一定能被4整除(不算用作字尾的等號);
3.等號一定用作字尾,且數目一定是0個、1個或2個。這是因為如果原文長度不能被3整除,base64要在後面新增\0湊齊3n位。
為了正確還原,新增了幾個\0就加上幾個等號。顯然新增等號的數目只能是0、1或2;
4.嚴格來說base64不能算是一種加密,只能說是編碼轉換。使用base64的初衷。是為了方便把含有不可見字串的資訊用可見字串表示出來,以便複製貼上;
c#中怎麼判斷一個字串是不是經過了base64加密?
4樓:醉酒銀蟲
public static bool isbase64formatted(string input)
catch}一種
bai很du
簡單zhi的dao方法回。答
如何判斷一個字串是否經過base64加密過
js判斷某字串中是否存在一段字串
var settime 4 00 字串settime var i settime.indexof 如果settime包含 則 i 返回 在settime裡面的位置,否則返回 1 import org.apache.commons.lang.stringutils stringutils.contai...
python判斷字串是否為數字
z伊凡 正則匹配法比較嚴謹一些,你說的數字有沒有條件限制?下面是一些常用的判斷各種數字的正規表示式 驗證數字 0 9 驗證n位的數字 d 驗證至少n位數字 d 驗證m n位的數字 d 驗證零和非零開頭的數字 0 1 9 0 9 驗證有兩位小數的正實數 0 9 0 9 驗證有1 3位小數的正實數 0 ...
判斷字串是否迴文(用free pascal解)
我說一下思路吧。首先資料範圍是100000 999999的話,只要迴圈 for i 100000 to 999999就可以了,這裡迴圈變數不要忘了要用longint 之後只要判斷素數和迴文數就可以了 可以用if 判斷迴文數 i false then flag false else if 判斷素數 i...