> For the complete documentation index, see [llms.txt](https://notes.frozensoliddesigns.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notes.frozensoliddesigns.com/pentesting/encoding-decoding.md).

# Encoding / Decoding

## Linux

#### Check File MD5 hash

* `md5sum id_rsa`

#### Encode SSH Key to Base64

* `cat id_rsa |base64 -w 0;echo`

Move to target machine

#### Decode the File

* `echo -n '<Base64 String>' | base64 -d > id_rsa`

#### Confirm the MD5 Hashes Match

* `md5sum id_rsa`

## Windows

### CMD

* check md5sum (Linux)
  * `md5sum id_rsa`
* encode to b64
  * `cat id_rsa | base64 -w 0;echo`
* decode in Powershell on target
  * `[IO.File]::WriteAllBytes("C:\Users\Public\id_rsa", [Convert]::FromBase64String("<b64 string here>"))`
* check md5sum (Powershell)
  * `Get-FileHash C:\Users\Public\id_rsa -Algorithm md5`

### `Powershell`

#### Encode File Using PowerShell

* `[Convert]::ToBase64String((Get-Content -path "C:\Windows\system32\drivers\etc\hosts" -Encoding byte))`
* Get MD5 Hash
  * `Get-FileHash "C:\Windows\system32\drivers\etc\hosts" -Algorithm MD5 | select Hash`

#### Decode Base64 String in Linux

* `echo <b64 string> | base64 -d > hosts`

#### Check MD5sum

* `md5sum hosts`
