东莞企业网站电话,lumen 做企业网站,营销型企业网站案例,南昌租房网地宝网当程序中使用硬编码加密密匙时#xff0c;所有项目开发人员都可以查看该密匙#xff0c;甚至如果攻击者能够获取 程序 class文件#xff0c;可通过反编译得到密匙#xff0c;硬编码加密密匙会大大降低系统安全性。
对于避免使用硬编码密匙的情况#xff0c;示例1给出了不…当程序中使用硬编码加密密匙时所有项目开发人员都可以查看该密匙甚至如果攻击者能够获取 程序 class文件可通过反编译得到密匙硬编码加密密匙会大大降低系统安全性。
对于避免使用硬编码密匙的情况示例1给出了不规范用法(Java 语言)示例。示例2给出了规范 用法(Java 语言)示例。
示例1:private static String encryptionKey dfashsdsdfsdgagascv;byte[] keyBytes encryptionKey.getBytes();SecretKeySpec key new SecretKeySpec(keyBytes,AES);Cipher encryptCipher Cipher.getInstance(AES);encryptCipher.init(Cipher.ENCRYPT MODE,key);
上述代码使用硬编码加密密钥执行 AES 加密。
程序应采用不小于8个字节的随机生成的字符串作为密匙。
示例2:KeyGeneratorkeyGen KeyGenerator.getInstance(AES);keyGen.init(128,new SecureRandom(password.getBytes()));SecretKeysecretKey kgen.generateKey();byte[] keyBytes secretKey.getEncoded();SecretKeySpec key new SecretKeySpec(keyBytes,AES);Cipher encryptCipher Cipher.getInstance(AES);encryptCipher.init(Cipher.ENCRYPT MODE,key);
上述代码使用 KeyGenerator 来生成密匙。