-Base62x 新增 -Perl 版本技術實現 Base62x.pm

在此前的一篇Blog(-R/G2SW )中,「-gMIS 吉密斯優化更新+分組項區段AddGroupBySeg/+複製AddByCopy等」, 咱們提到「註冊動做registerAct: 改進增長 Base62x.class.js」, 初嘗跨編程語言、運行時環境進行數據交換的便利,此次也因着部署一個新的 -GWA2 的項目,須要在 -PHP-Perl 中進行多字節非ASCII字符數據的傳遞,因而就推薦了 -Base62x , 這樣 Base62x in Perl 的工做就排上日程,在兩個週末的實驗下,完成了 Base62x in Perl 的初個版本. 以下是一些使用細節,同時也能夠在 -GitHub-Wadelau 上尋找得到, 或者直接訪問 -Base62x .php

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快捷處理的相關方法。如,npm

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.app

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/J2SLide

相關文章
相關標籤/搜索