atob和btoa的趣谈
2019獨角獸企業重金招聘Python工程師標準>>>
不了解的人突然看到window對象的atob和btoa 函數,估計會認為哪個臭小子添加全局函數了。
你如果告訴他這是原生函數,他一定會怒罵:哪個腦殘給api起個這樣的名子。
你能猜出來這兩個函數是干什么的嗎?
實驗一下:
直觀看有這幾點:
奇怪嗎,根本不奇怪,解釋一下它們的用途就明白了。
引用MDN:
Base64是一組相似的二進制到文本(binary-to-text)的編碼規則,使得二進制數據在解釋成radix-64的表現形式后能夠用ASCII字符串的格式表示出來。
atob()?函數能夠解碼通過base-64編碼的字符串數據。相反地,btoa()?函數能夠從字符串或二進制數據創建一個base-64編碼的ASCII字符串。
簡單一句:Base64編碼將數據轉為“安全字符”用于傳輸,編碼會使內容變長1/3!
btoa就是進行Base64編碼,atob是解碼。
有問題就是:它不支持Utf-8中的所有字符,會有異常。解決方案:
https://developer.mozilla.org/zh-CN/docs/Web/API/WindowBase64/Base64_encoding_and_decoding
但我試驗更簡單的是:
unescape(atob( // 解碼btoa( escape( "12中國? à la mode")) // 編碼) )?
我現在決定在項目里,用它們來加密,解密存入localStorage中的字符串了。
安全嗎 ?知道了肯定不安全,但只要別人看一眼是亂碼就OK了。
轉載于:https://my.oschina.net/u/1540190/blog/2962232
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的atob和btoa的趣谈的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 你的GitHub,怎么和我用的不太一样?
- 下一篇: gearhost php,Gearhos
