伪加密算法:Base64

做过网络通信的iOSer对Base64都不会很陌生,涉及加密的数据通常会在传输之前做一次Base64转换,一般形式如下 Base64(DES/AES(Data)) ,所以有些iOSer就把Base64当作加密算法的一种,甚至一些在线工具也直接称呼Base64为加密/解密,实际上这误会可大了,本篇回答以下三个问题:

要回答第一个问题,首先来看看Base64的编码过程,这里以字符串 “1234” 为例,经过Base64编码后,结果为 "MTIzNA==" ,也是一个字符串,过程如下:

看到这里,你会疑问,这样的编码有什么用?
Base64真正的作用不是将字符串转换为另一个字符串,而是将任意二进制转换为字符串,这个字符串的范围还很小,只有64个,这就为那些只能传输字符串的协议传输数据带来方便,比如http,通过一些字符的替换,还可以避免特殊字符的冲突。

苹果已经提供了原生的API,用Swift做Base64编码:

NSData.Base64EncodingOptions 有四个可选值:

可以组合使用:

编码结果按76个字符换行,换行符为\r。

解码方法如下:

思考题:
编码过程中,6位补8位的规则是什么,是高位补0还是低位,为什么?经过深入思考的结果才是自己的哦,欢迎你的留言👏

  • 鍔犲瘑鍚庣殑瀛楃涓叉渶鍚庢湁涓や釜鈥==鈥濇槸浠涔鍔犲瘑绠楁硶?
    绛旓細1锛Base64 浣跨敤US-ASCII瀛愰泦鐨64涓瓧绗,鍗冲ぇ灏忓啓鐨26涓嫳鏂囧瓧姣嶏紝0锛9锛岋紜锛/銆2锛岀紪鐮佹绘槸鍩轰簬3涓瓧绗︼紝姣忎釜瀛楃鐢8浣嶄簩杩涘埗琛ㄧず锛屽洜姝や竴鍏24浣嶏紝鍐嶅垎涓4鍥涚粍锛屾瘡缁6浣嶏紝琛ㄧず涓涓狟ase64鐨勫笺3锛孊ase64鍊间负0灏辨槸A锛屼负27鐨勫氨鏄痓銆傝繖鏍凤紝姣3涓瓧绗︿骇鐢4浣嶇殑Base64瀛楃銆傚鏋滆鍔犲瘑鐨勫瓧绗︿覆...
  • BASE64鍔犲瘑鍘熺悊
    绛旓細1. Base64浣跨敤A--Z,a--z,0--9,+,/ 杩64涓瓧绗.2. 缂栫爜鍘熺悊:灏3涓瓧鑺傝浆鎹㈡垚4涓瓧鑺( (3 X 8) = 24 = (4 X 6) )鍏堣鍏3涓瓧鑺,姣忚涓涓瓧鑺,宸︾Щ8浣,鍐嶅彸绉诲洓娆,姣忔6浣,杩欐牱灏辨湁4涓瓧鑺備簡.3. 瑙g爜鍘熺悊:灏4涓瓧鑺傝浆鎹㈡垚3涓瓧鑺.鍏堣鍏4涓6浣(鐢ㄦ垨杩愮畻),姣忔宸︾Щ6...
  • base64 鍜 urlencode鐨勫尯鍒
    绛旓細base64 鍜 urlencode鐨勫尯鍒 base64 1銆佸寘鍚獳-Z a-z 0-9 鍜屽姞鍙封+鈥濓紝鏂滄潬鈥/鈥 鐢ㄦ潵浣滀负寮濮嬬殑64涓暟瀛. 绛夊彿鈥=鈥濈敤鏉ヤ綔涓哄悗缂鐢ㄩ斻2銆2杩涘埗鐨.3銆佽姣旀簮鏁版嵁澶33%銆4銆佸父鐢ㄤ簬閭欢銆倁rlencode 闄や簡 -_. 涔嬪鐨勬墍鏈夐潪瀛楁瘝鏁板瓧瀛楃閮藉皢琚浛鎹㈡垚鐧惧垎鍙凤紙%锛夊悗璺熶袱浣嶅崄鍏繘鍒舵暟锛岀┖鏍煎垯缂栫爜...
  • base64 鍔犲瘑鍚庡彲浠ヨ繕鍘熷洖鍘,杩欑鍔犲瘑涓嶅氨娌℃湁瀹夊叏鎬у彲瑷浜?
    绛旓細BASE64涓嶆槸鐢ㄦ潵鍔犲瘑鐨勩備綘鐪嬬湅缁忚繃BASE64缂栫爜鍚庣殑瀛楃涓诧紝鍏ㄩ儴閮芥槸鐢辨爣鍑嗛敭鐩樹笂闈㈢殑甯歌瀛楃缁勬垚锛岃繖鏍风紪鐮佸悗鐨勫瓧绗︿覆鍦ㄧ綉鍏充箣闂翠紶閫掍笉浼氫骇鐢烾NICODE瀛楃涓蹭笉鑳借瘑鍒垨鑰呬涪澶辩殑鐜拌薄銆備綘鍐嶄粩缁嗙爺绌朵笅EMAIL灏变細鍙戠幇鍏跺疄EMAIL灏辨槸鐢base64缂栫爜杩囧悗鍐嶅彂閫佺殑銆傜劧鍚庢帴鏀剁殑鏃跺欏啀杩樺師銆傝繕鏈変竴绉嶆儏鍐典笅鐢˙ASE64缂栫爜涔...
  • RSA銆丼HA銆丏ES銆丮D5銆BASE64鐨勫彲閫嗘у垎鏋
    绛旓細MD5浠512浣嶅垎缁勬潵澶勭悊杈撳叆鐨勪俊鎭紝涓旀瘡涓鍒嗙粍鍙堣鍒掑垎涓16涓32浣嶅瓙鍒嗙粍锛岀粡杩囦簡涓绯诲垪鐨勫鐞嗗悗锛绠楁硶鐨勮緭鍑虹敱鍥涗釜32浣嶅垎缁勭粍鎴愶紝灏嗚繖鍥涗釜32浣嶅垎缁勭骇鑱斿悗灏嗙敓鎴愪竴涓128浣嶆暎鍒楀笺BASE64鏄竴涓紪鐮佺畻娉曪紝瀵规暟鎹唴瀹硅繘琛岀紪鐮佺敤鏉ヤ紶杈擄紝铏界劧鏄彲閫嗙殑锛屼絾鏄畠鐨勭紪鐮佹柟寮忔槸鍏紑鐨勶紝鏃犳墍璋撳姞涓鍔犲瘑銆Base64鏄...
  • 鏄撹瑷 Base64鐨鍔犲瘑绠楁硶
    绛旓細浠g爜---.鐗堟湰 2.瀛愮▼搴 Base64缂栫爜, 瀛楄妭闆, 鍏紑 .鍙傛暟 鍘熸枃, 瀛楄妭闆 .灞閮ㄥ彉閲 浣欐暟, 鏁存暟鍨 .灞閮ㄥ彉閲 涓夊瓧鑺傛暟鎹, 瀛楄妭鍨, , "3".灞閮ㄥ彉閲 鐮佽〃, 瀛楄妭闆 .灞閮ㄥ彉閲 len_x, 鏁存暟鍨 .灞閮ㄥ彉閲 len_y, 鏁存暟鍨 .灞閮ㄥ彉閲 缁撴灉, 瀛楄妭闆 .灞閮ㄥ彉閲 i, 鏁存暟鍨 .灞閮ㄥ彉閲 k, 鏁存暟鍨...
  • bitmap 杩涜base64鍔犲瘑涓嶈兘姝e父鏄剧ず
    绛旓細搴旇鏄痓itmap杞负base64鏃舵暟鎹嚭鐜伴棶棰樺湪bitmap.compress(Bitmap.CompressFormat.PNG锛100锛宐aos)锛涜繖涓腑璁剧疆bitmap鐨勬牸寮忎负jpg鏍煎紡鏃讹紝涓鐩磋浆鎹㈠け璐ワ紝鏀逛负png鏍煎紡灏卞彲浠ヤ簰杞Base64鏄綉缁滀笂鏈甯歌鐨勭敤浜庝紶杈8Bit瀛楄妭浠g爜鐨勭紪鐮佹柟寮忎箣涓锛孊ase64骞朵笉鏄畨鍏ㄩ鍩熺殑鍔犲瘑绠楁硶锛屽叾瀹濨ase64鍙兘绠楁槸涓涓紪鐮佺畻娉...
  • base64缂栫爜涓轰粈涔堜綅鏁扮浉绛
    绛旓細涓轰粈涔堣浣跨敤Base64锛熷湪璁捐杩欎釜缂栫爜鐨勬椂鍊欙紝鎴戞兂璁捐浜哄憳鏈涓昏鑰冭檻浜3涓棶棰橈細1.鏄惁鍔犲瘑锛2.鍔犲瘑绠楁硶澶嶆潅绋嬪害鍜屾晥鐜 3.濡備綍澶勭悊浼犺緭锛熷姞瀵嗘槸鑲畾鐨勶紝浣嗘槸鍔犲瘑鐨勭洰鐨勪笉鏄鐢ㄦ埛鍙戦侀潪甯稿畨鍏ㄧ殑Email銆傝繖绉嶅姞瀵嗘柟寮忎富瑕佸氨鏄滈槻鍚涘瓙涓嶉槻灏忎汉鈥濄傚嵆杈惧埌涓鐪兼湜鍘诲畬鍏ㄧ湅涓嶅嚭鍐呭鍗冲彲銆傚熀浜庤繖涓洰鐨勫姞瀵嗙畻娉曠殑...
  • 杩欎釜鏄粈涔鍔犲瘑鏂瑰紡
    绛旓細鍑犵鍔犲瘑鏂瑰紡 1 Base64鍔犲瘑鏂瑰紡(鍙)Base64涓殑鍙墦鍗板瓧绗﹀寘鎷瓧姣岮-Z/a-z/鏁扮粍0-9/ 鍔犲彿鈥+鈥欐枩鏉犫/鈥 杩欐牱鍏辨湁62涓瓧绗 Base64 ios7涔嬪悗鍔犲叆绯荤粺搴 2 MD5鍔犲瘑 Message Digest Algorithm MD5锛堜腑鏂囧悕涓烘秷鎭憳瑕绠楁硶绗簲鐗堬級涓鸿绠楁満瀹夊叏棰嗗煙骞挎硾浣跨敤鐨勪竴绉嶆暎鍒楀嚱鏁帮紝鐢ㄤ互鎻愪緵娑堟伅鐨勫畬鏁存т繚鎶...
  • hex 鍜 base64鐨勫尯鍒
    绛旓細锛圱he Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.锛 涓轰粈涔堣浣跨敤Base64锛 鍦ㄨ璁¤繖涓紪鐮佺殑鏃跺欙紝鎴戞兂璁捐浜哄憳鏈涓昏鑰冭檻浜3涓棶棰橈細 1.鏄惁鍔犲瘑锛 2.鍔犲瘑绠楁硶澶嶆潅绋嬪害鍜屾晥鐜 3.濡備綍澶勭悊浼犺緭锛 鍔犲瘑鏄...
  • 扩展阅读:base64在线转换器 ... base64编码转换器 ... base64在线编码解码 ... 极客工具库base64 ... base64位密码在线加密 ... java base64加密 ... 在线加密解密工具base64 ... base64前端加密后端解密 ... base解密网站 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网