mirror of
https://github.com/javascript-obfuscator/javascript-obfuscator
synced 2026-08-09 12:42:29 +00:00
33 lines
1.0 KiB
TypeScript
33 lines
1.0 KiB
TypeScript
import { base64alphabetSwapped } from '../../../../constants/Base64AlphabetSwapped';
|
|
|
|
/**
|
|
* This atob logic completely ignores padding characters
|
|
*
|
|
* @returns {string}
|
|
*/
|
|
export function AtobTemplate (): string {
|
|
return `
|
|
var {atobFunctionName} = function (input) {
|
|
const chars = '${base64alphabetSwapped}';
|
|
|
|
let output = '';
|
|
let tempEncodedString = '';
|
|
|
|
for (
|
|
let bc = 0, bs, buffer, idx = 0;
|
|
buffer = input.charAt(idx++);
|
|
~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer,
|
|
bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0
|
|
) {
|
|
buffer = chars.indexOf(buffer);
|
|
}
|
|
|
|
for (let k = 0, length = output.length; k < length; k++) {
|
|
tempEncodedString += '%' + ('00' + output.charCodeAt(k).toString(16)).slice(-2);
|
|
}
|
|
|
|
return decodeURIComponent(tempEncodedString);
|
|
};
|
|
`;
|
|
}
|