MD5 / SHA1 / Base64
MD5
Gerando hash de uma string
# Linux
echo -n "teste" | md5sum
Gerando hash de um arquivo
# Linux
md5sum <arquivo>
# Windows
Get-FileHash <file> -Algorithm MD5
certutil -hashfile <file> md5
O comando md5sum
(Linux) possui o parâmetro -b
, para realizar a operação em binário
, pois por padrão ele utiliza a opção -t
, que é a verificação com text
.
SHA1
Gerando hash de uma string
echo -n "teste" | sha1sum
Gerando hash de um arquivo
# Linux
sha1sum <arquivo>
# Windows
certutil -hashfile <file> sha256
Base64
Ahh o Base64... esse é um encoding que "talvez" nem deveria estar aqui na seção de criptografia, mas como é muito utilizada em torno de funções criptográficas, vale a pena citá-la. Basicamente, ele percorre todos os bytes e transforma cada conjunto de 6 bits em um byte legível (8 bits). O resultado é que o tamanho dos bytes codificados aumenta em cerca de 33%.
Encode
Linux
# Convertendo string em base64
echo -n "<string>" | base64
# Convertendo string em base64 e depois em MD5
echo -n "<string>" | base64 -w 0 | md5sum
# Encode de arquivo
base64 -w 0 <file>
Windows
# Convertendo string em base64
$str = '<string>'
[System.Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($str))
# Encode de arquivo
[Convert]::ToBase64String((Get-Content -path "<file>" -Encoding byte))
Decode
Linux
echo -n "dGVzdGU=" | base64 -d
base64 -d <file>
echo "dGVzdGU=" | python -m base64 -d
openssl enc -base64 -d <<< 'dGVzdGU='
Windows (Powershell)
[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String('<base64_encode>'))
[IO.File]::WriteAllBytes("<output_file>", [Convert]::FromBase64String("<base64_encode>"))
Execução de Comandos
Linux
echo '<base64>' | base64 -d | bash
Windows
Powershell -EncodedCommand "d2hvYW1p"
iex ([System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("d2hvYW1p")))
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String("d2hvYW1p")) | iex
iex ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("d2hvYW1p")))
[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String("d2hvYW1p")) | iex
Sites
# Como o base64 funciona
https://marquesfernandes.com/o-que-e-base64-para-que-serve-e-como-funciona/
Last updated
Was this helpful?