栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java fortify硬编码秘钥漏洞使用KeyStore解决

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java fortify硬编码秘钥漏洞使用KeyStore解决

java_fortify Scan:

问题:
1.Key Management: Hardcoded Encryption Key

问题解释:
问题1.秘钥使用硬编码方式。

解决方案:
使用Keystore生成存储AES密钥文件

使用Keystore生成存储AES密钥文件工具类(JDK1.8):

package com.study.util;

import com.study.common.Consts;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.*;
import java.security.cert.CertificateException;


public class KeyStoreUtils {

    
    private static void initKeyStore(Key key,String alias,String pdKey,String pdKeyStore,String ksFileName) throws KeyStoreException, CertificateException, NoSuchAlgorithmException, IOException {
        KeyStore keyStore = KeyStore.getInstance("JCEKS");
        keyStore.load(null, null);
        // alias为别名,pd为其密码
        keyStore.setKeyEntry(alias, key, pdKey.toCharArray(), null);
        // pd密钥库密码
        String path = KeyStoreUtils.class.getClassLoader().getResource("").getPath();//注意getResource("")里面是空字符串
        FileOutputStream fos = null;
        try{
            fos = new FileOutputStream(path + ksFileName);
            keyStore.store(fos, pdKeyStore.toCharArray());
        }finally{
            if(fos != null){
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

    
    private static Key acquireKeyStore(String alias,String pdKey,String pdKeyStore,String ksFileName) throws KeyStoreException, CertificateException, IOException, NoSuchAlgorithmException, UnrecoverableEntryException {
        KeyStore keyStore = KeyStore.getInstance("JCEKS");
        String path = KeyStoreUtils.class.getClassLoader().getResource("").getPath();//注意getResource("")里面是空字符串
        FileInputStream fis = null;
        try{
            fis = new FileInputStream(path + ksFileName);
            keyStore.load(fis, pdKeyStore.toCharArray());
            Key key = keyStore.getKey(alias,pdKey.toCharArray());
            return key;
        }finally {
            if(fis != null){
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }

}

注:本工具生成的keystore文件在resource路径下,此路径可以根据本人需要修改

参考资料:https://blog.csdn.net/weixin_46505978/article/details/119784021?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-3-119784021-null-null.pc_agg_new_rank&utm_term=aes+java+%E5%AF%86%E9%92%A5%E5%AD%98%E5%82%A8&spm=1000.2123.3001.4430

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/999123.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号