# Encoding/decoding

CyberChef can encode and decode a wide variety of languages. It's especially useful when the encoding technique is unknown, as it offers functionality to automatically detect and decode the encoding method used.

{% embed url="<https://cyberchef.org/>" %}

## Base64/HEX/ROT13 encoding and decoding

<pre class="language-bash"><code class="lang-bash"># base64 encode
<strong>echo hackthebox | base64
</strong><strong>
</strong><strong># base64 decode	
</strong>echo ENCODED_B64 | base64 -d
	
# hex encode
echo hackthebox | xxd -p
	
# hex decode
echo ENCODED_HEX | xxd -p -r	

# rot13 encode
echo hackthebox | tr 'A-Za-z' 'N-ZA-Mn-za-m'
	
# rot13 decode
echo ENCODED_ROT13 | tr 'A-Za-z' 'N-ZA-Mn-za-m'	
</code></pre>

## &#x20;Encode to base64 and then to md5sum

```shell-session
echo -n 1 | base64 -w 0 | md5sum

cdd96d3cc73d1dbdaffa03cc6cd7339b -
```

Tip: We are using the `-n` flag with `echo`, and the `-w 0` flag with `base64`, to avoid adding newlines, in order to be able to calculate the `md5` hash

* Script to automatically perform a encoding for uid's starting from 1 to 10.
  * Using `tr -d` to remove the trailing `-` characters, as follows:

```html
for i in {1..10}; do echo -n $i | base64 -w 0 | md5sum | tr -d ' -'; done

cdd96d3cc73d1dbdaffa03cc6cd7339b
0b7e7dee87b1c3b98e72131173dfbbbf
0b24df25fe628797b3a50ae0724d2730
f7947d50da7a043693a592b4db43b0a1
8b9af1f7f76daf0f02bd9c48c4a2e3d0
006d1236aee3f92b8322299796ba1989
b523ff8d1ced96cef9c86492e790c2fb
d477819d240e7d3dd9499ed8d23e7158
3e57e65a34ffcb2e93cb545d024f5bde
5d4aace023dc088767b4e08c79415dcd
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hackjiji.org/general/encoding-decoding.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
