使用取代加密法(Substitution cipher)對字串進行加解密。
大部分的相關的gem只有做到簡易替換方式的加密,另外在定義字母對應的時候也沒有看到一個比較好用的方式,所以決定自己做一個。
基本使用方式如下:
sc = SubCipher.gen
sc.encode("Here is a secret.")
# "Wyky gn q nyakyr."
sc.decode("Wyky gn q nyakyr.")
# "Here is a secret."
sc.seed
# "abcdefghijklmnopqrstuvwxyz"
sc.map
# "qeahyftwgpjixodzbknrlscvum"
SubCipher.gen
會使用預設的參數(也就是英文字母)建立一個SubCipherObject,接著可以用encode
與decode
來進行加解密。注意的是同一個字母但不同大小寫會對應到同一個字母,例如:如果a對應到b,那表示A會對應到B。seed
與map
則是用來表示字母的對應情況,以上面的例子來說就是將abcdefghijklmnopqrstuvwxyz
對應到qeahyftwgpjixodzbknrlscvum
。
另外SubCipher.gen
也提供了一些參數可以自定義要加解密的字母(seed
)與如何做字母對應(map, keep_case
)。詳細的使用方式請參考README - Options。
想要做一個簡單的加解密方法讓存在資料庫的敏感資料可以做個轉換,不要單純以明碼的方式做儲存。另外覺得自己太久沒有寫ruby了,所以就順便練習一下。