【问题标题】:How can I get digest with android?如何使用 android 获取摘要?
【发布时间】:2016-11-11 08:31:52
【问题描述】:

我需要签署String 并同时发送。我有一个.pem 文件作为私钥,我正在尝试将此文件转换为PrivateKey

这是我的代码:

try {
            File privateKeyFile = new File("path to .pem file");

            //TODO: HOW CAN I CONVERT THAT FILE INTO PRIVATE KEY?

            Signature signature = Signature.getInstance("SHA1withRSA");
            signature.initSign(privateKey);
            signature.update(data.getBytes());

            byte[] sign = signature.sign();
        } catch (NoSuchAlgorithmException | SignatureException e) {
            e.printStackTrace();
        }

你有什么建议给我吗?

【问题讨论】:

    标签: java android security private-key sign


    【解决方案1】:

    我是这样解决的: 而是使用了.pem 文件,我直接保存了从PrivateKey 获得的String,然后当我需要签署数据时,我得到String 并将其转换为PrivateKey

    这是我的代码:

    public String signData(final String data, final String privateKeyString) throws NoSuchAlgorithmException, InvalidKeySpecException, InvalidKeyException, SignatureException {
    
            X509EncodedKeySpec keySpec = new X509EncodedKeySpec(privateKeyString.getBytes());
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            PrivateKey privateKey = keyFactory.generatePrivate(keySpec);
    
    
            Signature signature = Signature.getInstance("SHA256withRSA");
            signature.initSign(privateKey);
            signature.update(data.getBytes());
            byte[] sign = signature.sign();
            return new String(sign);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-18
      • 2018-08-02
      相关资源
      最近更新 更多