Blowfish加密算法Java版简单实现

前几天网上突然出现流言:某东发生数据泄露12G,最终某东在一篇声明中没有否认,还算是勉强承认了吧,这件事对于一般人有什么影响、应该怎么做已经有一堆人说了,所以就不凑热闹了,咱来点对程序猿来说实际点的,说一个个人认为目前比较安全的加密算法:Blowfish。 上代码之前,先说几点Blowfish加密算法的特点: 对称加密,即加密的密钥和解密的密钥是相同的; 每次加密之后的结果是不同的(这也是老夫比较欣赏的一点); 可逆的,和老夫之前的文章介绍的md5等摘要算法不一样,他是可逆的; 速度快,加密和解密的过程基本上由ADD和XOR指令运算组成; 免费,任何人都可以免费使用不需要缴纳版权费; BlowFish 每次只能加密和解密8字节数据; 接下来就是最重要的部分,Blowfish加密算法的实现: package cn.bridgeli.encrypt; public enum BlowfishManager { BRIDGELI_CN("bridgeli_cn!@#$abc123_"); private BlowfishManager(String secret) { this.blowfish = new Blowfish(secret); } private Blowfish blowfish; public Blowfish getBlowfish() { return blowfish; } /** * 解密 * @param sCipherText * @return */ public String decryptString(String sCipherText){ return this.getBlowfish().decryptString(sCipherText); } /** * 加密 * @param sPlainText * @return */ public String encryptString(String sPlainText){ return this.getBlowfish().encryptString(sPlainText); } public static void main(String[] args) { String encryptString = BlowfishManager.BRIDGELI_CN.encryptString(10 + ""); System.out.println(encryptString); String decryptString = BlowfishManager.BRIDGELI_CN.decryptString(encryptString); System.out.println(decryptString); } } 这是对外的接口,使用起来非常简单,对用户很友好,下面是算法的具体实现: ...

December 18, 2016 · 16 min · 3241 words · Bridge Li