乐趣区

关于密码学:密码学-13-数字签名算法

简介:

对指标先进行音讯摘要算法,失去的后果再进行 RSA 加密。

特点:

这种状况下的 RSA 往往是 NoPadding 模式。保障每次的加密后果统一。


代码实现

public static String getSignature(String data) throws Exception {PrivateKey privateKey = RSABase64.genPrivatekey();
        Signature signature = Signature.getInstance("SHA256withRSA");
        signature.initSign(privateKey);
        signature.update(data.getBytes(StandardCharsets.UTF_8));
        byte[] res=  signature.sign();
        ByteString of = ByteString.of(res);
        return  of.base64();};

    public static boolean verifySignature (String data, String sign) throws Exception {PublicKey publicKey = RSABase64.genPublickey();
        Signature signature = Signature.getInstance("SHA256withRSA");
        signature.initVerify(publicKey);
        signature.update(data.getBytes(StandardCharsets.UTF_8));
        return  signature.verify(ByteString.decodeBase64(sign).toByteArray());
    };
退出移动版