小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

使用base64 加密在URL安全傳遞|url

 WindySky 2017-01-18

原文地址:http://www./topic/1435231261

-------------

base64模塊是用來作base64編碼解碼的。這種編碼方式在電子郵件中是很常見的。它可以把不能作為文本顯示的二進(jìn)制數(shù)據(jù)編碼為可顯示的文本信息。編碼后的文本大小會(huì)增大1/3。

base64模塊真正用的上的方法只有8個(gè),分別是encode, decode, encodestring, decodestring, b64encode, b64decode, urlsafe_b64decode, urlsafe_b64encode。他們8個(gè)可以兩兩分為4組,encode, decode一組,專門用來編碼和 解碼文件的,也可以對(duì)StringIO里的數(shù)據(jù)做編解碼;encodestring, decodestring一組,專門用來編碼和解碼字符串; b64encode 和b64decode 一組,用來編碼和解碼字符串,并且有一個(gè)替換符號(hào)字符的功能。這個(gè)功能是這樣的:因?yàn)閎ase64編碼后的字符除 了英文字母和數(shù)字外還有三個(gè)字符 + / =, 其中=只是為了補(bǔ)全編碼后的字符數(shù)為4的整數(shù),而+和/在一些情況下需要被替換的,b64encode 和 b64decode 正是提供了這樣的功能。至于什 么情況下+和/需要被替換,最常見的就是對(duì)url進(jìn)行base64編碼的時(shí)候。urlsafe_b64encode 和urlsafe_b64decode 一組,這個(gè)就是用來專門對(duì)url進(jìn)行base64 編解碼的,實(shí)際上也是調(diào)用的前一組函數(shù)。

Python 必須補(bǔ)齊=號(hào)才正常,不然會(huì)拋錯(cuò)no padding.

python版本:

def base64_url_decode(inp):
    # 通過url傳輸時(shí)去掉了=號(hào),所以需要補(bǔ)上=號(hào)
    import base64
    return base64.urlsafe_b64decode(str(inp + '=' * (4 - len(inp) % 4)))

def base64_url_encode(inp):
    import base64
    return base64.urlsafe_b64encode(str(inp)).rstrip('=')

PHP版本:

function base64url_encode($data) { 
  return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); 
} 
function base64url_decode($data) { 
  return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT)); 
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多