summaryrefslogtreecommitdiffstats
path: root/_tools/ascii-hex.md
diff options
context:
space:
mode:
Diffstat (limited to '_tools/ascii-hex.md')
-rw-r--r--_tools/ascii-hex.md76
1 files changed, 76 insertions, 0 deletions
diff --git a/_tools/ascii-hex.md b/_tools/ascii-hex.md
new file mode 100644
index 0000000..4bb114d
--- /dev/null
+++ b/_tools/ascii-hex.md
@@ -0,0 +1,76 @@
+---
+title: ASCII and Hex converter
+has_children: false
+nav_order: 6
+description: Tool for converter ASCII and Hex
+layout: default
+---
+
+<h1>ASCII To Hex</h1>
+<form id="ascii-to-hex">
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="ASCII" name="ascii-to-hex" id="ascii-to-hex" >
+ <label for="ascii-to-hex">ASCII</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="Glue" name="ascii-to-hex-glue" id="ascii-to-hex-glue" value=" ">
+ <label for="ascii-to-hex-glue">Glue/Separator (empty for the format 0x0123456789ABCDE, ` ` for the format 0x01 0x23 0x45 0x67 0x89 0xAB 0xCD 0xEF)</label>
+ </div>
+ <div class="mb-3">
+ <input type="submit" class="btn btn-primary" value="Calculate!">
+ </div>
+ <div class="form-floating mb-3">
+ <input readonly class="form-control" type="text" id="hex-result" placeholder="HEX Result">
+ <label for="hex-result">HEX Result</label>
+ </div>
+</form>
+<h1>Hex To ASCII</h1>
+<form id="hex-to-ascii">
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="HEX" name="hex-to-ascii" id="hex-to-ascii">
+ <label for="hex-to-ascii">HEX</label>
+ </div>
+ <div class="form-floating mb-3">
+ <input type="text" class="form-control" placeholder="Separator" name="hex-to-ascii-separator" id="hex-to-ascii-separator" value=" ">
+ <label for="hex-to-ascii-separator">Glue/Separator (empty for the format 0x0123456789ABCDEF, ` ` for the format 0x01 0x23 0x45 0x67 0x89 0xAB 0xCD 0xEF)</label>
+ </div>
+ <div class="mb-3">
+ <input type="submit" class="btn btn-primary" value="Calculate!">
+ </div>
+ <div class="form-floating mb-3">
+ <input readonly class="form-control" type="text" id="ascii-result" placeholder="ASCII Result">
+ <label for="ascii-result">ASCII Result</label>
+ </div>
+</form>
+
+<script>
+
+ function getChunks(s, i) {
+ var a = [];
+ do{ a.push(s.substring(0, i)) } while( (s = s.substring(i)) != "" );
+ return a;
+ }
+
+ var asciiToHexForm = document.getElementById('ascii-to-hex');
+ asciiToHexForm.addEventListener('submit',(event) => {
+ event.preventDefault();
+ var fomrdata = new FormData(asciiToHexForm);
+ var str = fomrdata.get('ascii-to-hex');
+ var glue = fomrdata.get('ascii-to-hex-glue');
+ var prefixi = glue !== "" ? "0x" : "";
+ var prefix = glue === "" ? "0x" : "";
+ var hex = prefix + ([...str].map((elem, n) => prefixi+Number(str.charCodeAt(n)).toString(16)).join(glue));
+ document.getElementById('hex-result').value = hex;
+ });
+
+ var hexToAsciiForm = document.getElementById('hex-to-ascii');
+ hexToAsciiForm.addEventListener('submit',(event) => {
+ event.preventDefault();
+ var fomrdata = new FormData(hexToAsciiForm);
+ var str = fomrdata.get('hex-to-ascii');
+ var separator = fomrdata.get('hex-to-ascii-separator');
+ var ascii = separator === "" ? getChunks(str.substring(2),2).map(el => String.fromCharCode(parseInt(el, 16))).join('') : str.split(separator).map(el => String.fromCharCode(Number(el))).join('');
+ document.getElementById('ascii-result').value = ascii;
+ });
+
+</script>