diff options
Diffstat (limited to '_tools/ascii-hex.md')
-rw-r--r-- | _tools/ascii-hex.md | 76 |
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> |