Blowfish是個加密算法,具體的細節我多說無益,可以參考pediy的這篇教材<Crack Tutorial 2001> - 第6章 軟件保護技術 - 第三節 加密算法 - 《BLOWFISH算法》。
主要的特點是它有個pbox和一個sbox,定義如下:
ungigned long pbox[18]
unsigned long sbox[4256]
這兩個box的初始值是固定的,然後用key去處理pbox和sbox。處理完畢後,key已經沒用,接下來就是用pbox和sbox加密明文產生密文。
解密的方式就是逆序使用pbox。也就是用key處理完pbox和sbox之後,將pbox反轉一下即可。