base全家桶的安装使用方法
base编码是Binary-to-text encoding的一种实现方法,它可以把二进制数据(含不可打印的字符)编码成可打印字符序列。
本文会不定时收录“base全家桶”:base64、base32、base16、base58、base91、base92、base36、base62、base85、base128等。
收录BaseHash(包含base36、base52、base56、base58、base62、base94)
------------------
0x01 base64
安装:python2.7自带
alphabet:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
padding:
=
使用:
import base64
c=base64.b64encode('pcat.cc')
m=base64.b64decode(c)
print c,m
0x02 base32
安装:python2.7自带
alphabet:
ABCDEFGHIJKLMNOPQRSTUVWXYZ234567
padding:
=
使用:
import base64
c=base64.b32encode('pcat.cc')
m=base64.b32decode(c)
print c,m
0x03 base16
安装:python2.7自带
alphabet:
0123456789ABCDEF
使用:
import base64
c=base64.b16encode('pcat.cc')
m=base64.b16decode(c)
print c,m
注意:
当b16decode的参数含有小写字母时,需要传入第二个参数True
base64.b16decode('706361742e6363',True)
或者使用python2.7的.decode('hex')则无须考虑大小写。
'706361742e6363'.decode('hex')
0x04 base58
github项目:https://github.com/keis/base58
安装:
pip install base58
alphabet:
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
使用:
import base58
c=base58.b58encode('pcat.cc')
m=base58.b58decode(c)
print c,m
0x05 base91
网址:http://base91.sourceforge.net/
github项目:https://github.com/aberaud/base91-python
安装:
pip install base91
alphabet:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!#$%&()*+,./:;<=>?@[]^_`{|}~"
使用:
import base91
c=base91.encode('pcat.cc')
m=base91.decode(c)
print c,m
0x06 base92
github项目:https://github.com/thenoviceoof/base92
安装:
pip install base92
alphabet:
!#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz{|}
a special denotation (an empty string):
~
使用:
import base92
c=base92.encode('pcat.cc')
m=base92.decode(c)
print c,m
注意:
encode,b92encode,base92_encode是一样的,
decode,b92decode,base92_decode是一样的。
0x07 base36
github项目:https://github.com/tonyseek/python-base36
安装:
pip install base36
alphabet:
0123456789abcdefghijklmnopqrstuvwxyz
使用:
import base36
c=base36.loads('pcat')
assert type(c)==int
m=base36.dumps(c)
print c,m
注意:
dumps函数接收的参数类型为int
0x08 base62
github项目:https://github.com/suminb/base62
安装:
pip install pybase62
alphabet:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
使用:
import base62
m=base62.decode('pcat')
assert type(m)==int
c=base62.encode(m)
print c,m c=base62.encodebytes('pcat.cc')
m=base62.decodebytes(c)
print c,m
注意:
encode函数接收的参数类型为int
0x09 base85
base85种类:
- ASCII85 encoding. This is the default. 0x00000000 is compressed to z. Spaces are not compressed.
- Adobe ASCII85 encoding is same as previous except data is enclosed between <~ and ~> .
- ZeroMQ (Z85) encoding. NOTE! Even though specification says input length must be divisible by 4, this is not currently enforced. Spaces and zeroes are not compressed.
- Character set from RFC1924 which is an April fools joke. Spaces and zeroes are not compressed.
(1) github项目:https://github.com/tuupola/base85
安装:
请先安装PHP的Composer,再
composer require tuupola/base85
使用:
(下面代码分别对应上面4种类型)
<?php
require __DIR__ . '/vendor/autoload.php';
use Tuupola\Base85; $m='pcat.cc'; $ascii85 = new Base85([
"characters" => Base85::ASCII85,
"compress.spaces" => false, "compress.zeroes" => true
]);
print $ascii85->encode($m) . PHP_EOL; $adobe85 = new Base85([
"characters" => Base85::ASCII85,
"compress.spaces" => false, "compress.zeroes" => true,
"prefix" => "<~", "suffix" => "~>"
]);
print $adobe85->encode($m) . PHP_EOL; $z85 = new Base85([
"characters" => Base85::Z85,
"compress.spaces" => false, "compress.zeroes" => false
]);
print $z85->encode($m) . PHP_EOL; $rfc1924 = new Base85([
"characters" => Base85::RFC1924,
"compress.spaces" => false, "compress.zeroes" => false
]);
print $rfc1924->encode($m) . PHP_EOL;
(2) python3中base64模块自带
#!/usr/bin/env python3
import base64
c=base64.a85encode(b'pcat.cc')
m=base64.a85decode(c)
print(c,m) c=base64.b85encode(b'pcat.cc')
m=base64.b85decode(c)
print(c,m)
注意:
python3中的a85encode和b85encode分别对应上面4种类型的第1和第4种。
0x0a base128
github项目:https://github.com/rpuntaie/base128
安装:
git clone https://github.com/rpuntaie/base128
cd base128
python3 setup.py install
另外需要先安装bitarray(在windows里安装麻烦)
pip install bitarray
alphabet:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\xb5\xb6\xb7\xbc\xbd\xbe\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
使用:
#!/usr/bin/env python3
import base128
b128=base128.base128(chars=None, chunksize=7)
c=list(b128.encode(b'pcat.cc'))
m=b''.join(b128.decode(c))
print(c,m)
注意:
chars至少128字节,如果为None,则使用base128.base128.defaultchars
chunksize必须是7的倍数,且小于128。
0x0b BaseHash
github项目:https://github.com/calve/python-basehash
安装:
pip install basehash
alphabet:
BASE36 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
BASE52 = '0123456789BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz'
BASE56 = '23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz'
BASE58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
BASE62 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
BASE94 = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
(跟前面所介绍的相比,base36的alphabet的小写字母变成大写,base62相同。)
使用:
from basehash import *
print base36().decode('PCAT')
print base52().decode('pc4t')
print base56().decode('pcat')
print base58().decode('pcat')
print base62().decode('pcat')
print base94().decode('pcat.cc')
base全家桶的安装使用方法的更多相关文章
- 从零开始系列之vue全家桶(3)安装使用vuex
什么是vuex? vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象. 即data中属性同时有一个或几个组件同时使用,就是data中共用的属性. ...
- 从零开始系列之vue全家桶(1)安装前期准备nodejs+cnpm+webpack+vue-cli+vue-router
写在前面: 什么是全家桶? 包含了vue-router(http://router.vuejs.org),vuex(http://vuex.vuejs.org), vue-resource(https ...
- Adobe cc2019全家桶(免破解直接安装版)
图片来源:Adobe官网 此次整理了Adobe cc2019的全家桶,全部为免破解,直接安装即可使用版本,对一些小白来说,值得推荐. 下载方式:找到下面你需要的Adobe软件,公众号内回复对应的关键词 ...
- 2020版Adobe全家桶介绍及免费下载安装
前言 Adobe公司创建于1982年,是世界领先的数字媒体和在线营销解决方案供应商.公司总部位于美国加利福尼亚州圣何塞.Adobe 的 客户包括世界各地的企业.知识工作者.创意人士和设计者.OEM合作 ...
- 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入
使用react全家桶制作博客后台管理系统 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...
- 最全总结 | 聊聊 Python 数据处理全家桶(Sqlite篇)
1. 前言 上篇文章 聊到 Python 处理 Mysql 数据库最常见的两种方式,本篇文章继续说另外一种比较常用的数据库:Sqlite Sqlite 是一种 嵌入式数据库,数据库就是一个文件,体积很 ...
- 手把手教你全家桶之React(二)
前言 上一篇已经讲了一些react的基本配置,本遍接着讲热更新以及react+redux的配置与使用. 热更新 我们在实际开发时,都有用到热更新,在修改代码后,不用每次都重启服务,而是自动更新.并而不 ...
- 已配置好的vue全家桶项目router,vuex,api,axios,vue-ls,async/await,less下载即使用
github 地址: https://github.com/liangfengbo/vue-cli-project 点击进入 vue-cli-project 已构建配置好的vuejs全家桶项目,统一管 ...
- 使用vue全家桶制作博客网站
前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用vue全家桶制作的博客网站 概述 该项目是基于vue全家桶(vue.vue-router.vuex.v ...
随机推荐
- EXCEL技巧-多级目录设置
现有如下图所示的数据,要求:以方法.厚度.品种进行分类汇总,并对数量.面积.金额求和. 在进行分类汇总前需要先对数据进行排序,操作如下图所示. 在排序对话框中,点击“添加条件” 两次,这样可以对三个字 ...
- html中第一行是什么意思
html中第一行是什么意思 一.总结 一句话总结: 告诉浏览器,让浏览器得知自己要处理的内容时html 二.html中第一行是什么意思 转自或参考:HTML文件第一行是什么东东_百度知道https:/ ...
- 阿里云服务器配置https(总结)
阿里云服务器配置https(总结) 一.总结 一句话总结: 1.下载https证书(可以在阿里云上) 2.在服务器上面开启443端口 3.配置apache服务器,443的加ssl,让80的重定向到44 ...
- PHP中定义常量的区别,define() 与 const
正文 在PHP5.3中,有两种方法可以定义常量: 使用const关键字 使用define()方法 const FOO = 'BAR'; define('FOO','BAR'); 这两种方式的根本区 ...
- php 验证中文和部分自定义符号
$str = '54787dDp中s-:"'; $rule ="/^[\x{4e00}-\x{9fa5}A-Za-z0-9`·!!@#$\¥%…^&*(())\-+=“.\ ...
- opencv常见示例
1.批量转换灰度图并保存 #include <iostream> #include <opencv2/opencv.hpp> #include <string> u ...
- PHP 美化输出数组
var_export — 输出或返回一个变量的字符串表示 此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码. 您可以通过将函数的 ...
- vue页面刷新重定向
在App.vue中,添加如下代码: created(){ if(this.$router.path !== '/RealTimeMonitoring'){ this.$router.replace(' ...
- 39 Flutter仿京东商城项目 收货地址列表、增加 修改收货地址布局、弹出省市区选择器
加群452892873 下载对应39课文件,运行方法,建好项目,直接替换lib目录 pubspec.yaml city_pickers: ^ AddressAdd.dart import 'packa ...
- 雨田家园 delphi 拆分字符串
最近在使用Delphi开发一种应用系统的集成开发环境.其中需要实现一个字符串拆分功能,方法基本原型应该是:procedure SplitString(src: string ; ch: Char; v ...