把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));

}

python url加密_使用base64加密在URL传递(python和php版本)相关推荐

  1. 0宽字符加密_前端AES加密方式分析,及其python实现

    在前端常见的加密方式中AES很少使用,因为相对于非对称的RSA安全性很低,AES是典型的对称加密,密钥就在前端源码里. 案列网站是http://ewt360.com,一个并不复杂的网站,首先抓个包看看 ...

  2. java python rsa加密_实现Java加密,Python解密的RSA非对称加密算法功能

    摘要 因为最近业务需要使用到openssl的rsa非对称加密算法,研究了下它的使用方式,但是特殊在于前端分IOS和android两端,所以前端部门要求使用java给他们做一个加密工具包,但是因为服务端 ...

  3. mysql数据库传输加密_[数据库]MySQL加密

    [数据库]MySQL加密 0 2016-12-28 13:00:07 MySQL字段加密和解密1.加密:aes_encrypt('admin','key') 解密:aes_decrypt(passwo ...

  4. python物联网通信_物联网通信RESTDemo示例程序(Python版本)

    源码下载 app.py #!/usr/bin/python # -*- coding:utf-8 -*- from commondlib.help.ini import * from commondl ...

  5. python 字符串拼接_面试官让用 3 种 python 方法实现字符串拼接 ?对不起我有8种……...

    点击上方 蓝字关注我们 点击上方"印象python",选择"星标"公众号重磅干货,第一时间送达!之前发过很多关于 Python 学习的文章,收到大家不少的好评, ...

  6. tp3 普通模式url模式_[tp3.2.1]开启URL(重写模式),省略URL中的index.php

    重写模式(省略url中的index.php) 在apache配置文件httpd.conf中,查找 1.mod_rewrite.so, 启动此模块 2.AllowOverride , 值= All 3. ...

  7. python ide 最好_我在iPad上最好的Python IDE

    python ide 最好 Having finished my first year at university, and being left with very little to do thi ...

  8. python selenium脚本_怎样开始写第一个基于python的selenium脚本

    1.下载并安装python(http://www.python.org/geti/). 2.安装selenium(http://pypi.python.org/pypi/selenium)下载并解压缩 ...

  9. python语言 行业_如何入门编程开发行业 选择Python语言怎么样

    如何入门编程开发行业?选择Python语言怎么样?Python是一种面向对象的解释型计算机程序设计语言,它是纯粹的自由软件,语法简洁清晰,它具有丰富和强大的库.它常被称为胶水语言,能够把用其他语言制作 ...

最新文章

  1. Windows7下OpenGL简单使用举例
  2. R语言使用ggplot2包使用geom_dotplot函数绘制分组点图(双分类变量分组可视化)实战(dot plot)
  3. python pandas 把数据保存成csv文件,以及读取csv文件获取指定行、指定列数据
  4. java.io包有哪些方法_java.io包下常用类及常用方法介绍
  5. 前端传值后端接收不到_解决vue get请求传参后端接收不到参数值(java sptingboot)
  6. python unpack_ip地址处理每天10行python代码系列
  7. 从微服务到分布式系统-Java开发人员生存指南
  8. activiti 部署流程图后中文乱码
  9. python 私有属性_Python3伪私有属性
  10. 云教版认识计算机说课,【教学设计】第1册第1课《认识电脑交朋友》
  11. mysql 跨服务器 etl_mysql数据库跨服务器查询【需要确定mysql支持FEDERATED ,可以参照文章内容自己配置】...
  12. 学习笔记之centos系统启动流程
  13. 0712 - 坚守,加强老本
  14. macOS Monterey新功能:抹掉所有内容和设置
  15. mysql 存储过程调用 mybatis/hibernate
  16. idea 导出项目结构树
  17. Java三种方法实现字符串排序
  18. 身份证扫描件用手机怎么弄?手把手教你生成电子身份证
  19. PS压缩图片至指定大小(500K,20K等)
  20. Java获取四分位数

热门文章

  1. 反调试技术揭秘(转)
  2. Spring Data JPA 从入门到精通~SpEL表达式的支持
  3. WinSock I/O 模型 -- WSAEventSelect 模型
  4. [前台]---ajax返回200成功,却进入error函数的解决方法
  5. Sqlite3中replace语句用法详解
  6. python去掉人像白边_python 使用plt画图,去除图片四周的白边方法
  7. linux 日志切割 自带,[日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割...
  8. ubuntu php mysql5.6_Ubuntu16.04搭建php5.6Web服务器环境
  9. 响应式编程优点 有效_什么是响应式编程?
  10. 华为手机如何固定横屏_华为手机如何录屏?原来方法这么简单,手把手教你学会...