密码学 13 数字签名算法

简介: 【密码学 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); returnof.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)); returnsignature.verify(ByteString.decodeBase64(sign).toByteArray()); };

    推荐阅读