Base64 加密算法原理
Base64 加密算法原理
Base64是網絡上最常見的用于傳輸8Bit字節碼的編碼方式之一,Base64就是一種基于64個可打印字符來表示二進制數據的方法。
因為在內存中每個字節占8位,即 1 byte = 8 bit,所有的數據都可以先轉成ascii碼,然后將對應的ascii碼轉為8位長度的二進制數據,比如 s 對應 115-> 01110011。
而base64做的就是將所有的二進制數據 6位為一個數據進行轉化的一個算法。因為6位二進制數據最多可以表示0~63共64個,所以名為Base64,對應的可以有Base32,Base128算法。
Base64 加密的過程
首先建立一個0~63的數據字典:
舉例,如果我們加密字符串 “s”,s轉化ascii碼 115,再轉化為二進制為01110011。
01110011 按6位一個,不足末位補0,但是每次補0需要補八個0,所以最后的位數應該是大于等于當前二進制位數的6和8的最小公倍數。比如當前位數為8,所以補位后長度應該是24。
01110011 00000000 00000000
011100 110000 000000 000000
28 48 末位補位 末位補位
末位補位用=來表示,則根據上面數據字典則為:
cw==
Base64加密的安全程度
上面看了Base64的加密方式,可以看出不管加密解密,只需要按照固定的規則即可,所以是不是Base64就不夠安全呢?
其實不然。
針對于Base64,因為解密時需要對每一個字符進行重編碼來計算原字符串,所以只需要在加密字符串前面加上固定的字符即可對加密字符串進行混淆。
如s加密后為cw==,在前面加上字符a組成acw==,這時如果一個人不知道我們加的是a還是ac,或者什么都沒加,他一定不能得到原來的字符串。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Base64 加密算法原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThreadLocal 变量和 与线程池
- 下一篇: Java 进阶 ——2019 计划要读的