web3j-根據keystore密碼解析keystore從而得到賬戶信息

    //根據keystore解鎖賬號返回私鑰
    public static String getPrivatekeybyKeystore(String keyStorePass) {
        try {
            ClassPathResource resource = new ClassPathResource("keystore.json");
            File files = asFile(resource.getInputStream());
              
            org.web3j.crypto.Credentials credentials = WalletUtils.loadCredentials(keyStorePass,files);
            String privatekey = credentials.getEcKeyPair().getPrivateKey().toString(16);
            
            return privatekey;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    
    public static File asFile(InputStream inputStream) throws IOException{
        File tmp = File.createTempFile("keystore", ".json", new File("/"));
        OutputStream os = new FileOutputStream(tmp);
        int bytesRead = 0;
        byte[] buffer = new byte[8192];
        while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) {
          os.write(buffer, 0, bytesRead);
        }
        inputStream.close();
        return tmp;
     }

關於keystore密碼的輸入,最開始是通過啓動項目的時候輸入-D******來得到,後面發現linux通過linux命令history可以直接看到密碼;後面就通過System.in的方式,在啓動項目過程中通過交互形式輸入來獲取,然後Controller中根據applicationArguments獲取密碼。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章