mirror of
https://github.com/gchq/CyberChef.git
synced 2025-04-21 15:26:16 -04:00
Add ASCII output for frequency table
When showing results in the frequency distribution table, it's quite helpful to see the distribution of the ASCII letters, if any. Provide an option to show this to show the characters alongside the code. Fixes #1169. Signed-off-by: Alex Blewitt <alex.blewitt@gmail.com>
This commit is contained in:
parent
ba66fd6546
commit
69073c9d99
1 changed files with 17 additions and 1 deletions
|
@ -31,6 +31,11 @@ class FrequencyDistribution extends Operation {
|
|||
"name": "Show 0%s",
|
||||
"type": "boolean",
|
||||
"value": true
|
||||
},
|
||||
{
|
||||
"name": "Show ASCII",
|
||||
"type": "boolean",
|
||||
"value": true
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -77,6 +82,7 @@ class FrequencyDistribution extends Operation {
|
|||
*/
|
||||
present(freq, args) {
|
||||
const showZeroes = args[0];
|
||||
const showAscii = args[1];
|
||||
// Print
|
||||
let output = `<canvas id='chart-area'></canvas><br>
|
||||
Total data length: ${freq.dataLength}
|
||||
|
@ -97,7 +103,17 @@ Byte Percentage
|
|||
|
||||
for (let i = 0; i < 256; i++) {
|
||||
if (freq.distribution[i] || showZeroes) {
|
||||
output += " " + Utils.hex(i, 2) + " (" +
|
||||
let c = " ";
|
||||
if (showAscii) {
|
||||
if (i <= 32) {
|
||||
c = String.fromCharCode(0x2400 + i);
|
||||
} else if (i === 127) {
|
||||
c = String.fromCharCode(0x2421);
|
||||
} else {
|
||||
c = String.fromCharCode(i);
|
||||
}
|
||||
}
|
||||
output += " " + Utils.hex(i, 2) + " " + c + " (" +
|
||||
(freq.percentages[i].toFixed(2).replace(".00", "") + "%)").padEnd(8, " ") +
|
||||
Array(Math.ceil(freq.percentages[i])+1).join("|") + "\n";
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue