はじめに

チャットやSNSなどで「分かる人には分かるよね」的なメッセージを送りたいときに
難読化することはないですか??(ないですよねきっと)

 

という風に ascii 文字列をバイナリ化してみます

ascii -> バイナリ

xxd -b を使うのが楽です

# シンプルな実装
alias a2b='xxd -b | cut -c11-63 | tr "\n" " "

# バイナリ文字列の先頭のゼロを削り、さらに末尾に改行を付けて出力する例
alias a2b='xxd -b | cut -c11-63 | sed "s/\b00*//g" | tr "\n" " " | sed "s/$/\n/"'

バイナリ -> ascii

bc でバイナリ->hex変換すると楽です

alias b2a="tr ' ' '\n' | sed '1iobase=16;ibase=2' | bc | sed 's/^.$/0&/' | tr -d '\n' | xxd -r -ps"

使い方

a2b は「バイナリ文字列の先頭のゼロを削り、さらに末尾に改行を付けて出力する例」を使ってます

$ echo maji darui | a2b
1101101 1100001 1101010 1101001 100000 1100100 1100001 1110010 1110101 1101001 1010

$ echo 1101101 1100001 1101010 1101001 100000 1100100 1100001 1110010 1110101 1101001 1010 | b2a
maji darui

# 記号や制御文字も大丈夫
$ echo -e "ore\tore _>[sagi]<_\nzettai *DAME*" | a2b | b2a
ore     ore _>[sagi]<_
zettai *DAME*

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS