Heim >php教程 >php手册 >使用base64加密在URL传递(python和php版本)

使用base64加密在URL传递(python和php版本)

WBOY
WBOYOriginal
2016-06-06 20:09:491053Durchsuche

把base64加密后在url传输,会把“+“,”/”分别替换为-,_,以及会把末尾的等号“=”去掉。 另外base64加密后的长度必然是4的倍数,所以可以根据这个还原“=”号 解密的过程就是这个的逆向。 注意:python必须补齐=号才正常,不然会抛错no padding. python

把base64加密后在url传输,会把“+“,”/”分别替换为”-”,”_”,以及会把末尾的等号“=”去掉。
另外base64加密后的长度必然是4的倍数,所以可以根据这个还原“=”号

解密的过程就是这个的逆向。

注意:python必须补齐=号才正常,不然会抛错no padding.

python版本:

def base64_url_decode(inp):
    # 通过url传输时去掉了=号,所以需要补上=号
    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)); 
}
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn