第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Spring Boot 應(yīng)用程序不會覆蓋特定屬性

Spring Boot 應(yīng)用程序不會覆蓋特定屬性

達(dá)令說 2021-10-13 12:40:22
當(dāng)我執(zhí)行我的 Spring Boot 應(yīng)用程序時(shí),我覆蓋了生命周期中一個(gè)名為postConstruct的方法,當(dāng)我想設(shè)置一些特定的屬性時(shí),例如server.ssl.key-store-password和server.ssl.trust-store-password這里是我的代碼:@PostConstruct    private void postConstruct() {        try {            Map<String, String> encryptedPass = new HashMap<String,String>();                System.getProperties().setProperty("server.ssl.key-store-password","decryptedpass1");                System.getProperties().setProperty("server.ssl.trust-store-password","decryptedpass2");                logger.info("########decryptedpass1 "+System.getProperty("server.ssl.key-store-password")); //return decryptedpass1                logger.info("########decryptedpass2 "+System.getProperty("server.ssl.trust-store-password"));//return decryptedpass2            } catch (Exception e) {                // TODO Auto-generated catch block                e.printStackTrace();            }            }控制臺上打印得很好,但我有一個(gè)例外java.security.UnrecoverableKeyException: Password verification failed!那么我怎樣才能覆蓋真正的(application.propoerties)
查看完整描述

1 回答

?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

您必須使用相同的算法來加密/解密密碼,為此,這個(gè)算法可以為您工作:


//encrypt password

 String ALGORITHM = "PBKDF2WithHmacSHA256";

 String KEYPATH = "/home/apiuser/toto";

 String SECRET = "SECRET";

 int ITERATIONCOUNT = 65536;

 int KEYSIZE = 256;

 String password = "pass";

   SecretKeyFactory factory = SecretKeyFactory.getInstance(ALGORITHM);


    PBEKeySpec spec = new PBEKeySpec(SECRET.toCharArray(), salt.getBytes(), ITERATIONCOUNT, KEYSIZE);

    SecretKey secretKey = factory.generateSecret(spec);

    SecretKeySpec secret = new SecretKeySpec(secretKey.getEncoded(), "AES");

    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

    cipher.init(Cipher.ENCRYPT_MODE, secret);

    byte[] ivBytes = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();

    Map<String,String> encryptedPasswords = new HashMap<String,String>();

    byte[] encryptedTextBytes = cipher.doFinal(password.getBytes("UTF-8"));

        byte[] finalByteArray = new byte[ivBytes.length + encryptedTextBytes.length];

        System.arraycopy(ivBytes, 0, finalByteArray, 0, ivBytes.length);

        System.arraycopy(encryptedTextBytes, 0, finalByteArray, ivBytes.length, encryptedTextBytes.length);

        String encryptedpass= DatatypeConverter.printBase64Binary(finalByteArray);


public static String generateSalt() {


        return KeyGenerators.string().generateKey();

    }


   //decrypt password

   String ALGORITHM = "PBKDF2WithHmacSHA256";

    String SECRET = "SECRET";

    String key = "salt_key";

    String encryptedPasswords = "encodedpass";

                    encryptedPassword = encryptedPasswords.get(key);

                if (encryptedPassword.length() <= IV_LENGTH) {

                    throw new Exception("The input string is not long enough to contain the initialisation bytes and data.");

                }

                byte[] byteArray = DatatypeConverter.parseBase64Binary(encryptedPassword);

                byte[] ivBytes = new byte[IV_LENGTH];

                System.arraycopy(byteArray, 0, ivBytes, 0, 16);

                byte[] encryptedTextBytes = new byte[byteArray.length - ivBytes.length];

                System.arraycopy(byteArray, IV_LENGTH, encryptedTextBytes, 0, encryptedTextBytes.length);

                SecretKeyFactory factory = SecretKeyFactory.getInstance(ALGORITHM);

                PBEKeySpec spec = new PBEKeySpec(SECRET.toCharArray(), key.getBytes(), 65536, 256);

                SecretKey secretKey = factory.generateSecret(spec);

                SecretKeySpec secret = new SecretKeySpec(secretKey.getEncoded(), "AES");

                Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

                cipher.init(Cipher.DECRYPT_MODE, secret, new IvParameterSpec(ivBytes));

                byte[] decryptedTextBytes = cipher.doFinal(encryptedTextBytes); 


查看完整回答
反對 回復(fù) 2021-10-13
  • 1 回答
  • 0 關(guān)注
  • 154 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號