关于javax.crypto的使用,这里不再介绍,参考上一篇blog。
这里说一下另一个问题。
在使用这个密码包的时候,以上一篇中代码所示,通过接口keygen.generateKey()生成的密钥每次都会重新生成,导致上一篇中代码只能够作为demo演示而用,在实际使用中则出现很多问题。
以Blowfish为例,如果能够按照下面的形式封装和使用,则非常好了。
String sk = BlowfishUtil.generatorKey();
BlowfishUtil u = new BlowfishUtil(sk);
String cipher = u.encrypt(msg);String plain = u.decrypt(cipher);
好了,废话不多说,直接上code。
package encryption_schema;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import utils.Base64Utils;
public class BlowFishUtil {
// SecretKey 负责保存对称密钥
private SecretKey deskey;
// Cipher负责完成加密或解密工作
private Cipher c;
//

本文介绍了如何在Java中使用javax.crypto包,并针对密钥生成的问题提供解决方案。通过示例展示了如何封装和使用密钥,特别是Blowfish算法,以便在实际应用中保存和重复使用密钥。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



