如何判斷字串是否經過base64加密過

2021-07-08 21:14:05 字數 1734 閱讀 2911

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加密過

delphi判斷是否有字串,delphi判斷字串是否含有數字

有兩種方法 1 在edit1的onkeypress事件中輸入如下 delphi 判斷字串是否含有數字 有兩種方法 1 在edit1的onkeypress事件中輸入如下 delphi如何判斷一個字串是否包含另一個字串 if pos 另一個字串 一個字條串 0 then begin 包含end delp...

函式palin char判斷字串是否為迴文

有幾處錯誤,在以下 中以註釋方式標出 void toupper char s int palin char s return 1 void main if a s i z s i s i 32 if的條件有問題,a s i s i z while head while head 判斷迴文,用連結串列...

JS判斷字串變數是否含有某個字串的實現方法

使用indexof,例如 varcts bbltext if cts.indexof text 0 js判斷字串變數是否含有某個字串的實現方法 js判斷字串變數是否含有某個字串的方法 var str a var strs abadg if strs.indexof str 0 else php中 判...