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反转一下即可。