比对js和py的Base64编码解码,探求一个共通之处

javascript代码

  1. 对英文字符进行base64编码解码
var str = 'javascript';// 编码
btoa(str)  // "amF2YXNjcmlwdA=="// 解码
atob("amF2YXNjcmlwdA==")  // "javascript"
  1. 对中文字符进行base64编码解码
var str = "China,中国"btoa(str)
/*
VM156:1 Uncaught DOMException: Failed to execute 'btoa' on 'Window':
The string to be encoded contains characters outside of the Latin1 range.
*/// 先对字符串进行编码
encodeURIComponent(str) // "China%EF%BC%8C%E4%B8%AD%E5%9B%BD"// 编码
btoa(encodeURIComponent(str))  // "Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="// 解码
decodeURIComponent(atob("Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ="))  // "China,中国"

python3代码

  1. 对英文字符进行base64编码解码
import base64name = "javascript"# 编码
base64.b64encode(name.encode())  # b'amF2YXNjcmlwdA=='# 解码
base64.b64decode(b'amF2YXNjcmlwdA==').decode()  # javascript
  1. 对中文字符进行base64编码解码

name = "China,中国"# 编码
base64.b64encode(name.encode())  # b'Q2hpbmHvvIzkuK3lm70='# 解码
base64.b64decode(b'Q2hpbmHvvIzkuK3lm70=').decode()  # China,中国

总结:
js和py3对英文的处理方式基本一致,编码结果也一样
发现,js对中文编码会报错,py对中文可以直接编码

按照js的思路,先按照URI的编码方式将字符编码


from urllib.request import quote, unquotename = "China,中国"# 先对文字进行url方式编码
quote(name)  # 'China%EF%BC%8C%E4%B8%AD%E5%9B%BD'# 编码
base64.b64encode(quote(name).encode())
# b'Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ='# 解码
unquote(base64.b64decode(b'Q2hpbmElRUYlQkMlOEMlRTQlQjglQUQlRTUlOUIlQkQ=').decode())
# China,中国

总结:

语言 编码 解码
javascript window.btoa(encodeURIComponent(s)) decodeURIComponent(window.atob(b))
pyhton base64.b64encode(quote(s).encode()) unquote(base64.b64decode(b).decode())

其中:
s 表示字符串
b 表示编码后的字符

这样,js和python就可以实现相同的Base64编码解码,可以用于前端代码解码,将js代码转换为python代码

参考

  1. javascript 使用btoa和atob来进行Base64转码和解码
  2. Python编程:URL网址链接中的中文编码与解码
  3. 简单明了区分escape、encodeURI和encodeURIComponent

Python爬虫:js的btoa和atob和pythonBase64编码解码比对分析相关推荐

  1. Python爬虫JS解密详解,学会直接破解80%的网站(一)!!!

    文章目录 1.网页查看 2.有道翻译简单实现源码 3.JS解密(详解) 4.python实现JS解密后的完整代码 4.1.实现效果 5.JS解密后完整代码升级版 5.1.实现效果 CSDN独家福利降临 ...

  2. **超防 ja3+加速乐(三种加密(md5,sha1,sha256)) 实战(python爬虫js逆向)

    **超防 加速乐+ja3 实战(python爬虫js逆向) 地址 aHR0cHM6Ly93d3cuaGVmZWkuZ292LmNuL2NvbnRlbnQvY29sdW1uLzY3OTQ4MTE/cGF ...

  3. 腾讯爬虫python_【Python爬虫+js逆向】Python爬取腾讯漫画!

    前一段假期期间,博主已经自学完了Python反爬虫的相关内容,面对各大网站的反爬机制也都有了一战之力.可惜因实战经验不足,所以总体来说还是一个字--菜.前两天,在学习并实战爬取了博主最爱看的腾讯动漫后 ...

  4. Python爬虫-JS破解openlaw加密cookie

    简单介绍: 最近做研究js混淆加密,以openlaw作为网站进行学习研究.openlaw主页裁判文书栏中有大量案件信息,同时能够为客户提供标准的法律专业知识以及智慧和经验成果.过程中遇到一些反爬措施, ...

  5. python爬虫JS逆向加密破解之百度翻译

    最近在从基础学习JS逆向,来分享一下百度翻译JS逆向的整个过程,也有助于自己加深记忆. JS逆向可以说是爬虫工程师必备的知识点了,但是如果对前端知识不够了解还是学起来很有难度的. 想学习的话可以在B站 ...

  6. python爬虫js逆向加密,Web爬虫处理参数js加密、js混淆、js逆向

    中国空气质量在线监测平台(https://www.aqistudy.cn/html/city_detail.html)在众多的练习中,关闭了前台数据信息的展示,也就是说现在网页是这样的: 但我们主要学 ...

  7. python爬虫JS逆向:X咕视频密码与指纹加密分析

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:煌金的咸鱼 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

  8. python爬虫JS逆向之人口流动态势大数据

    今天学习JS解密的网站是:人口流动态势大数据,这是网址:https://unicom_trip.133.cn/city/?system=cjfcts. 在做JS解密的时候,我们一定要记住一个方法:缺什 ...

  9. Python 爬虫js加密破解(四) 360云盘登录password加密

    登录链接:https://yunpan.360.cn/mindex/login 这是一个md5 加密算法,直接使用 md5加密即可实现 本文讲解的是如何抠出js,运行代码 第一部:抓包 如图 第二步: ...

最新文章

  1. POJ 2778 AC自己主动机+矩阵幂 不错的题
  2. linux系统reboot怎么退出,Linux系统肿么退出?
  3. 《Unity3D-控制角色受伤的时候身体颜色变化的代码》
  4. 将rm -f or -rf 删除命令改为放入回收站,并可通过命令将其撤回
  5. 自己封装的ASP.NET的SQLITE数据库的操作类
  6. sql server 事务_如何使用显式SQL Server事务回滚
  7. 知道python_看完这篇文章,你就知道Python是什么?
  8. async与defer
  9. Java--工厂模式
  10. Office Open XML 文档格式(转)
  11. 最新图解 FileZilla Server + FlashFXP 快速傻瓜式搭建FTP服务 1
  12. 大屏一体机!奥可视新品A5亮点浅析
  13. 为什么我不断收到Java错误:错误:可以找到或加载类Dint?
  14. 迁移学习VGG16实现猫狗大战
  15. 什么是腾讯会议?腾讯云会议应用讲解
  16. 【物联网那些事儿】18 大物联网操作系统,Raspbian Pi、Ubuntu Core、Windows 10 IoT、Micropython、OpenWrt ....你用过哪几个?
  17. C++ 菱形字母金字塔
  18. idea批量修改变量快捷键mac_IDEA 快捷使用指南
  19. python强势来袭-18-列表循环高级操作
  20. 花呗临时额度使用规则是什么?临时额度怎么取消?

热门文章

  1. 黑苹果制作Clover开机引导脱离U盘,小新Pro13详细教程
  2. 基于Opensips+Rtpengine+Freeswitch实现的网络电话系统
  3. win10系统没有切换用户功能怎么办
  4. c语言输出一行星星代码,C语言打印星星的问题
  5. Gald to meet you
  6. iPhone/iPad已停用,怎么解锁?
  7. Android 无法播放此视频
  8. X取个好的英文名字(男性)
  9. 活动(已结束)--我们是冠军,啊呸,我们是CSDN VIP
  10. oracle10g笔记1