All Projects → wadelau → Base62x

wadelau / Base62x

Licence: Apache-2.0 license
Base62x is an alternative approach to Base 64 without symbols in output.

Programming Languages

PHP
23972 projects - #3 most used programming language
java
68154 projects - #9 most used programming language
python
139335 projects - #7 most used programming language
perl
6916 projects
javascript
184084 projects - #8 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Base62x

lzbase62
LZ77(LZSS) based compression algorithm in base62 for JavaScript.
Stars: ✭ 38 (+0%)
Mutual labels:  base64, base62, base62x
tjson.js
JavaScript-compatible implementation of Tagged JSON (TJSON), written in TypeScript.
Stars: ✭ 53 (+39.47%)
Mutual labels:  base64, base32, base16
BaseNcoding
Library for encoding of binary data into strings using base32, base85, base128 and other algorithms.
Stars: ✭ 42 (+10.53%)
Mutual labels:  base64, base32
multibase
multi base encoding/decoding utility
Stars: ✭ 15 (-60.53%)
Mutual labels:  base64, base32
scure-base
Secure, audited & 0-deps implementation of bech32, base64, base32, base16 & base58
Stars: ✭ 27 (-28.95%)
Mutual labels:  base64, base16
data-encoding
Efficient and customizable data-encoding functions in Rust
Stars: ✭ 92 (+142.11%)
Mutual labels:  base64, base32
token
A simple base62 encoded token library for go, ideal for short url services.
Stars: ✭ 68 (+78.95%)
Mutual labels:  base62
vscode-theme-dark-blood
🎨 VSCode Theme: Dark Blood
Stars: ✭ 15 (-60.53%)
Mutual labels:  base16
BeFoR64
BeFoR64, Base64 encoding/decoding library for FoRtran poor men
Stars: ✭ 17 (-55.26%)
Mutual labels:  base64
convey
CSV processing and web related data types mutual conversion
Stars: ✭ 16 (-57.89%)
Mutual labels:  base64
base16-qutebrowser
base16 themes for qutebrowser
Stars: ✭ 93 (+144.74%)
Mutual labels:  base16
base16-textadept
Base16 themes for the Textadept editor
Stars: ✭ 56 (+47.37%)
Mutual labels:  base16
Powershell-Obfuscator
Powerful script for logical obfuscation of powershell scripts
Stars: ✭ 27 (-28.95%)
Mutual labels:  base64
parcel-plugin-url-loader
📦url loader for parcel, use base64 encode file
Stars: ✭ 24 (-36.84%)
Mutual labels:  base64
base64.c
Base64 Library in C
Stars: ✭ 60 (+57.89%)
Mutual labels:  base64
react-file-input-previews-base64
This package provides an easy to use, ready to go and customizable wrapper around file input, with option for image previews and returning file as base64 string.
Stars: ✭ 15 (-60.53%)
Mutual labels:  base64
Jawbreaker
A Python obfuscator using HTTP Requests and Hastebin.
Stars: ✭ 50 (+31.58%)
Mutual labels:  base64
base16-styles
Base16 color definitions in CSS, Less, Sass/Scss, and Stylus
Stars: ✭ 25 (-34.21%)
Mutual labels:  base16
universal-base64
Small universal base64 functions for node.js and browsers
Stars: ✭ 25 (-34.21%)
Mutual labels:  base64
wxBase64
🏗️在小程序中使用 js-base64 库
Stars: ✭ 19 (-50%)
Mutual labels:  base64

Base62x: An alternative approach to Base64 for alphanumeric-only [a-zA-Z0-9] 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, etc, and it is an ideal substitute and successor of many variants of Base64 encoding scheme.

Base62x 是一种无符号 [a-zA-Z0-9] 的Base64编码方案。

她可以在计算机文件系统、编程语言数据交换、互联网络通信系统等方面可以安全地使用,同时是各种变种Base64编码方案的理想替代品、继任者。

Contents

Base62x Usage

Base62x Research Paper

-Base62x in C

-Base62x in C#

-Base62x in C++

-Base62x in Dart

-Base62x in -Java

-Base62x in -JavaScript

-Base62x in -Perl

-Base62x in -PHP

-Base62x in -Python

-Base62x

Base62x is an alternative approach to Base 64 without symbols in output.

base62x

Compact, purified and even shorter!

-Base62x .

-Base62x Online

-Base62x Usage

Base62x.encode(myString);

Base62x.decode(encodedString);

Base62x.encode(myString, inBase);

Base62x.decode(encodedString, outBase);

base62x-design

-Base62x Papers

IEEE Article Number, 6020065 ;

-R/F2SQ , page url in -URL4P .

-Base62x in RearchGate, -R/12Sb .

Reference & Citation

@article{Liu2011Base62x,
	title={Base62x: An alternative approach to Base64 for only-alphanumeric characters in output},
	author={Liu, Zhenxing and Liu, Lu and Hill, Richard and Zhan, Yongzhao},
	journal={2011 Eighth International Conference on Fuzzy Systems and Knowledge Discovery (FSKD)},
	year={2011},
	url={https://ieeexplore.ieee.org/document/6020065/}
}

base62x.c

base62x.c

shell> gcc -lm base62x.c -o base62x

shell>./base62x

Usage: ./base62x [-v] [-n <2|8|10|16|32>] <-enc|dec> string

Version: 0.90

shell> mi=0; umi=0; for i in {1..10000}; \
	do \
	r=`cat /dev/urandom|tr -dc 'a-zA-Z0-9'|fold -w 16|head -n 1`; \
	r2=`cat /dev/urandom|tr -dc 'a-zA-Z0-9'|fold -w 16|head -n 1`; \
	a="$r中文时间a$r2"; b=`./base62x -enc $a`; c=`./base62x -dec $b`; \
	if [ "$a" == "$c" ]; then d="matched";mi=`expr $mi + 1`;\
	else d="unmatched"; umi=`expr $umi + 1`; fi;\
	echo -e "a=$a b="$b" c="$c" d="$d" mi="$mi" umi="$umi"\n"; \
	done

Base62x in -PHP

base62x.class.php

base62x_test.php

In base62x_test.php

<?php

include("./base62x.class.php");

$s = "abcd1234";
$s2 = "abc中文123";
$s3 = "\"Tcler's Wiki: UTF-8 bit by bit (Revision 6)\". 2009-04-25. Retrieved 2009-05-22."
	."In orthodox UTF-8, a NUL byte (\\x00) is represented by a NUL byte. […] But […] we "
	."[…] want NUL bytes inside […] strings […] | ① ② ③ ④ ⑤ ⑥ ⑦ |  Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ | "
	."!  # $ % & ' ( ) * + , - . /";

print "[$s] encoded:[".($s_enc=Base62x::encode($s))."]\n";
print "[$s_enc] decoded:[".($s_dec=Base62x::decode($s_enc))."]\n";

print "\n[$s2] encoded:[".($s2_enc=Base62x::encode($s2))."]\n";
print "[$s2_enc] decoded:[".($s2_dec=Base62x::decode($s2_enc))."]\n";

print "\n[$s3] encoded:[".($s3_enc=Base62x::encode($s3))."]\n";
print "[$s3_enc] decoded:[".($s3_dec=Base62x::decode($s3_enc))."]\n";

?>

Another recommended Base62x PHP Library:

https://github.com/mauriziofonte/php-base62x

Base62x in -Java

Base62x.class.jsp

base62x_test.jsp

In base62x_test.jsp

<%@page 
	import="java.util.Date,
		java.util.HashMap,
		java.util.Map,
		java.util.Iterator"
	language="java" 
	pageEncoding="UTF-8"%><%

//- system
System.setProperty("sun.jnu.encoding", "UTF-8");
System.setProperty("file.encoding", "UTF-8"); //- set " -Dfile.encoding=utf8 " in jvm start script

//- request
request.setCharacterEncoding("UTF-8");

//- response
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

%><%@include file="./Base62x.class.jsp"%><%

//- Test and examples of Base62x
//- Sun Aug 14 14:09:45 CST 2016
//- [email protected]

String s = "abcd1234";
String s2 = "abc中文123";
String s3 = "\"Tcler's Wiki: UTF-8 bit by bit (Revision 6)\". 2009-04-25. Retrieved 2009-05-22."
	+ "In orthodox UTF-8, a NUL byte (\\x00)"
	+ "is represented by a NUL byte. […] But […] we […] want NUL bytes inside […] strings […] "
	+ "| ① ② ③ ④ ⑤ ⑥ ⑦ "
	+ "| Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ | ! # $ % & ' ( ) * + , - . /";

String s_enc, s_dec, s2_enc, s2_dec, s3_enc, s3_dec;

out.println("<br/>["+s+"] encoded:["+(s_enc=Base62x.encode(s))+"]");
out.println("<br/>["+s_enc+"] decoded:["+(s_dec=Base62x.decode(s_enc))+"]");

out.println("<br/>["+s2+"] encoded:["+(s2_enc=Base62x.encode(s2))+"]");
out.println("<br/>["+s2_enc+"] decoded:["+(s2_dec=Base62x.decode(s2_enc))+"]");

out.println("<br/>["+s3+"] encoded:["+(s3_enc=Base62x.encode(s3))+"]");
out.println("<br/>["+s3_enc+"] decoded:["+(s3_dec=Base62x.decode(s3_enc))+"]");

%>

It's an alternative option for -Base64 in -Java , JDK Doc .

Base62x in -JavaScript

Base62x.class.js

base62x_test.js.html

In base62x_test.js.html

var randi = Math.ceil(Math.random()*10000);
var s = randi+'abcd'+(randi*randi)+'1234@'+(randi%2==0?'中國-文化-源遠流長'
	+randi+':::':randi)+(new Date())+'@'+Math.ceil(Math.random()*100000);
var encs = Base62x.encode(s);
var decs = Base62x.decode(encs);

var inum = randi+'a'+1+randi+'fea'; var ibase = 16; var obase = 16;
var num_enc = Base62x.encode(inum, ibase);
var num_dec = Base62x.decode(num_enc, obase);

Play with npm,

npm install base62x

by https://github.com/beaulac/node-base62x

Base62x in -Perl

Base62x.pm

Usage: OOP Style

use Base62x;

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

# numbers conversion
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);

Usage: Functional Style

use Base62x qw (base62x_encode base62x_decode);

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

Base62x in -Python

Base62x.py

Usage: OOP style

# import Base62x.py
from Base62x import Base62x

# initialize
base62x = Base62x();

rawstr =abcd1234xefg89;01”;
encstr = base62x.encode(rawstr);
decstr = base62x.decode(encstr);

Base62x_test.py

Test cases for Base62x in Python.

Base62x in -cplusplus / C++

base62x_test.cpp

Test scripts.

Base62x.class.hpp

Main class for the conversion.

Base62x in -csharp / C#

@todo

Base62x in -Dart

dart-base62x

https://pub.dev/packages/base62x

https://gitee.com/yf-frontend/dart-base62x/tree/main

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].