您可能听说过Sqlite中的十六进制编码:
select hex('hello');
-- 68656C6C6F
select unhex('68656C6C6F');
-- hello
sqlite默认情况下不支持其他编码算法。但是,您可以使用sqlean-crypto
扩展名轻松地启用它们(以任何方式与加密货币无关)。
注意。与其他DBM不同,向SQLITE添加扩展是轻而易举的。下载一个文件,运行一个数据库命令 - 您很高兴去。
sqlean-crypto
添加了两个功能:
-
encode(data, algo)
使用指定算法将二进制数据编码为文本表示。 -
decode(text, algo)
使用指定算法从文本表示中解码二进制数据。
支持的算法:base32
,base64
,base85
,hex
和url
。
Base32使用32个可读字符来表示二进制数据:
select encode('hello', 'base32');
-- NBSWY3DP
select decode('NBSWY3DP', 'base32');
-- hello
Base64使用64个可打印字符:
select encode('hello', 'base64');
-- aGVsbG8=
select decode('aGVsbG8=', 'base64');
-- hello
Base85(又名ASCII85)使用85个可打印字符:
select encode('hello', 'base85');
-- BOu!rDZ
select decode('BOu!rDZ', 'base85');
-- hello
Hexadecimal使用16个字符(0-9和a-f):
select encode('hello', 'hex');
-- 68656c6c6f
select decode('68656c6c6f', 'hex');
-- hello
URL encoding替换了字符串中的非alphanumeric字符,其相应的百分比编码值:
select encode('hel lo!', 'url');
-- hel%20lo%21
select decode('hel%20lo%21', 'url');
-- hel lo!
安装和用法
-
与sqlite命令行接口一起使用:
sqlite> .load ./crypto
sqlite> select encode('hello', 'base64');
有关IDE,Python等的用法,请参见How to Install an Extension。
请参阅Extension Documentation以获取参考。
在Twitter上关注@ohmypy以跟上新帖子