文档章节

-Base62x 新增 -Perl 版本技术实现 Base62x.pm

Wadelau
 Wadelau
发布于 2018/09/08 09:13
字数 693
阅读 8
收藏 0

在此前的一篇Blog(-R/G2SW )中,“-gMIS 吉密斯优化更新+分组项区段AddGroupBySeg/+复制AddByCopy等”, 我们提到“注册动作registerAct: 改进增加 Base62x.class.js”, 初尝跨编程语言、运行时环境进行数据交换的便利,这次也因着部署一个新的 -GWA2 的项目,需要在 -PHP 和 -Perl 中进行多字节非ASCII字符数据的传递,于是就推荐了 -Base62x , 这样 Base62x in Perl 的工作就排上日程,在两个周末的实验下,完成了 Base62x in Perl 的初个版本. 如下是一些使用细节,同时也可以在 -GitHub-Wadelau 上寻找获得, 或者直接访问 -Base62x .

  1. 面向对象编程OOP的 Base62x.pm

    use Base62x;
     

    my $base62x = Base62x->new();
    my $str = “Hello World!\n”;
    my $encoded = $base62x->encode($str);
    $str = $base62x->decode($encoded);

    在 Perl 程序的开始,引入 Base62x.pm , 然后生成相应的对象实例,通过调用 该实例的 encode/decode 方法实现相应的编码与解码。
    同 Base62x 的其他版本相通,实现了跨编程语言、运行时环境的数据安全交换。
    同 Base62x的其他版本一样,Perl版本也实现了针对数字进制转换和ASCII快捷处理的相关方法。如,

    my $i = 100;
    # treas $i as base 10 and transform it into Base62x
    my $numInBase62x = $base62x->encode($i, 10);
    # try to decode a Base62x num into base 10
    $i = $base62x->decode($numInBase62x, 10);

    OOP的调用方式,适合进行循环内反复调用的使用场景,由于在实例化时,进行了环境变量的初始化而节省了后续重复动作。
    .

  2. 函数式编程的Base62x.pm
    除了 OOP式的写法,Base62x.pm 还提供了函数式编程的调用方式,列如下。

     

    use Base62x qw (base62x_encode base62x_decode);
     

    my $str = “Hello World!\n”;
    my $encoded = base62x_encode($str);
    $str = base62x_decode($encoded);

    函数式编程适合单一次启动并运行的使用场景。
    详细实现可以参考 Base62x.pm 的代码。
    .

截止目前,Base62x 已经可以提供的编程语言版本包括 C, Java, PHP, JavaScript, Perl. 其中JavaScript 还有两个实现, Base62x.class.js 和 npm base62x.


Base62x: An alternative approach to Base64 for only-alphanumeric characters in output.
Base62x is an non-symbolic Base64 encoding scheme. It can be used safely in computer file systems, programming languages for data exchange, internet communication systems, and is an ideal substitute and successor of many variants of Base64 encoding scheme.
Base62x 是一种无符号的Base64编码方案。在计算机文件系统、编程语言数据交换、互联网络通信系统中可以安全地使用,同时是各种变种Base64编码方案的理想替代品、继任者。

-R/72SP 

© 著作权归作者所有

Wadelau
粉丝 2
博文 28
码字总数 39834
作品 0
东城
架构师
私信 提问
Base62x算法改进并增加Base62x in Python

距离上次 “-Base62x 新增 -Perl 版本技术实现 Base62x.pm (-R/J2SL )”, Base62x 在时隔 6 个月后又进行了一些更新,记录一下,也再次印证,最好的版本永远是下一个版本。这次的更新包括...

wadelau
03/13
33
0
Wadelau/Base62x

-Base62x Base62x is an alternative approach to Base 64 without symbols in output. Compact, purified and even shorter! -Base62x . -Base62x Online -Base62x Usage Base62x.encode(my......

Wadelau
2017/01/16
0
0
PacketFence 2.2.1 发布,网络接入控制

这是一个小更新版本,主要是提升了稳定性,新增的硬件支持包括:AeroHIVE AP, Dlink DES3550, DGS3200, and HP ProCurve 5400 系列。 PacketFence是开源NAC (网络接入控制) 中的佼佼者,它可...

红薯
2011/06/17
472
0
sjdy521/Mojo-Weixin

Mojo-Weixin v1.3.4 使用Perl语言编写的微信客户端框架,基于Mojolicious,要求Perl版本5.10+,可通过插件提供基于HTTP协议的api接口供其他语言或系统调用 郑重声明 本项目完全遵循微信官方提...

sjdy521
2016/02/05
0
0
Perl 5.12.0 发布

Perl是一种脚本语言。 最初的设计者为拉里·沃尔(Larry Wall),它於1987年12月18日發表。Perl借取了C、sed、awk、shell scripting 以及很多其他程式語言的特性。其中最重要的特性是他内部集...

红薯
2010/04/13
369
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot全家桶,集成shiro,rabbitmq,redis, mybatis,druid,swagger

搭建了一个SpringBoot的模板,下载即可作为单体应用的服务后台模板 项目地址:https://gitee.com/devilscode/springboot_template 项目集成框架 springboot 作为基础框架 shiro 权限管理 ra...

devils_os
6分钟前
2
0
云服务器的优势有哪些?

与传统的服务器相比,云服务器有多种显著的优势,因此近年来云服务器租用一直都很受消费者的欢迎。 那么云服务器都有哪些优势呢? 云服务器的稳定性很好 虚拟主机是很多用户建站的首选方案,这...

云漫网络Ruan
6分钟前
2
0
好程序员web前端学习路线分享CSS浮动-清除浮动篇

好程序员web前端学习路线分享CSS浮动-清除浮动篇,为什么要清除浮动   这里所说的清除浮动,并不是不要浮动了,而是清除浮动与浮动之间的影响。那么到底会有什么影响呢? 1.高度塌陷   ...

好程序员官方
17分钟前
1
0
我有酒,你有故事吗?

记录学习的每一秒,巨杉技术社区有奖征文全新启动! 如果, 你热爱数据技术,乐于尝(zhe)试(teng), 又喜欢写点什么~ 那么, 无论你是架构大佬,还是DBA大神, 只要你愿意通过文字分享你...

巨杉数据库
21分钟前
1
0
【Git】ignore文件不生效

简介 使用git的过程中, 某些文件可能不希望上传到服务器,例如日志、本地化配置等信息。这时候,我们可以通过配置.gitignore文件忽略这些文件的提交。 配置.gitignore 常见的配置如下: HELP...

Areya
24分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部