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

WBOY
リリース: 2016-06-06 20:09:49
オリジナル
1030 人が閲覧しました

把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)); 
}
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート