Cleaned up Base62 ops and updated CHANGELOG

This commit is contained in:
n1474335 2018-12-18 12:19:42 +00:00
parent 22454ae842
commit d89d79116c
5 changed files with 40 additions and 23 deletions

View file

@ -18,8 +18,6 @@
"From Binary",
"To Octal",
"From Octal",
"To Base62",
"From Base62",
"To Base64",
"From Base64",
"Show Base64 offsets",
@ -27,6 +25,8 @@
"From Base32",
"To Base58",
"From Base58",
"To Base62",
"From Base62",
"To Base85",
"From Base85",
"To Base",

View file

@ -22,21 +22,27 @@ class FromBase62 extends Operation {
this.name = "From Base62";
this.module = "Default";
this.description = "decode base62 string";
this.infoURL = "https://en.wikipedia.org/wiki/List_of_numeral_systems";
this.description = "Base62 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. The high number base results in shorter strings than with the decimal or hexadecimal system.";
this.infoURL = "https://wikipedia.org/wiki/List_of_numeral_systems";
this.inputType = "string";
this.outputType = "string";
this.args = [];
this.outputType = "byteArray";
this.args = [
{
name: "Alphabet",
type: "string",
value: "0-9A-Za-z"
}
];
}
/**
* @param {string} input
* @param {Object[]} args
* @returns {string}
* @returns {byteArray}
*/
run(input, args) {
if (input.length < 1) return "";
const ALPHABET = Utils.expandAlphRange("0-9A-Za-z").join("");
if (input.length < 1) return [];
const ALPHABET = Utils.expandAlphRange(args[0]).join("");
const BN = BigNumber.clone({ ALPHABET });
const re = new RegExp("[^" + ALPHABET.replace(/[[\]\\\-^$]/g, "\\$&") + "]", "g");
@ -44,7 +50,7 @@ class FromBase62 extends Operation {
const number = new BN(input, 62);
return Utils.byteArrayToUtf8(Utils.convertToByteArray(number.toString(16), "Hex"));
return Utils.convertToByteArray(number.toString(16), "Hex");
}
}

View file

@ -22,11 +22,17 @@ class ToBase62 extends Operation {
this.name = "To Base62";
this.module = "Default";
this.description = "encode string to base62";
this.description = "Base62 is a notation for encoding arbitrary byte data using a restricted set of symbols that can be conveniently used by humans and processed by computers. The high number base results in shorter strings than with the decimal or hexadecimal system.";
this.infoURL = "https://en.wikipedia.org/wiki/List_of_numeral_systems";
this.inputType = "string";
this.inputType = "byteArray";
this.outputType = "string";
this.args = [];
this.args = [
{
name: "Alphabet",
type: "string",
value: "0-9A-Za-z"
}
];
}
/**
@ -37,12 +43,10 @@ class ToBase62 extends Operation {
run(input, args) {
if (input.length < 1) return "";
const ALPHABET = Utils.expandAlphRange("0-9A-Za-z").join("");
const ALPHABET = Utils.expandAlphRange(args[0]).join("");
const BN = BigNumber.clone({ ALPHABET });
input = Utils.strToByteArray(input);
input = toHexFast(input);
input = input.toUpperCase();
input = toHexFast(input).toUpperCase();
const number = new BN(input, 16);