mirror of
https://github.com/gchq/CyberChef.git
synced 2024-11-17 09:28:31 +01:00
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
|
/**
|
||
|
* Base85 resources.
|
||
|
*
|
||
|
* @author PenguinGeorge [george@penguingeorge.com]
|
||
|
* @copyright Crown Copyright 2018
|
||
|
* @license Apache-2.0
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* Base85 alphabet options.
|
||
|
*/
|
||
|
export const ALPHABET_OPTIONS = [
|
||
|
{
|
||
|
name: "Standard",
|
||
|
value: "!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu",
|
||
|
},
|
||
|
{
|
||
|
name: "Z85 (ZeroMQ)",
|
||
|
value: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#",
|
||
|
},
|
||
|
{
|
||
|
name: "IPv6",
|
||
|
value: "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|~}",
|
||
|
}
|
||
|
];
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Returns the name of the alphabet, when given the alphabet.
|
||
|
*
|
||
|
* @param {string} alphabet
|
||
|
* @returns {string}
|
||
|
*/
|
||
|
export function alphabetName(alphabet) {
|
||
|
alphabet = alphabet.replace("'", "'");
|
||
|
alphabet = alphabet.replace("\"", """);
|
||
|
alphabet = alphabet.replace("\\", "\");
|
||
|
let name;
|
||
|
|
||
|
ALPHABET_OPTIONS.forEach(function(a) {
|
||
|
if (escape(alphabet) === escape(a.value)) name = a.name;
|
||
|
});
|
||
|
|
||
|
return name;
|
||
|
}
|