base64加密URL地址参数传递(python与php版本)

发布时间:2019-11-17编辑:脚本学堂
有关base64加密url地址栏参数值的方法,分为python与php二种版本加密url地址,需要的朋友参考下。

base64加密url地址参数

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

解密过程自然就是加密的逆向了。

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

1、python版本:
 

复制代码 代码示例:
#!/usr/bin/env 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('=')

2、php版本:
 

复制代码 代码示例:
#/usr/bin/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));
}