1 私钥签名
public static String signByKey(String content,String privateKey) { PKCS8EncodedKeySpec sp = new PKCS8EncodedKeySpec(new BASE64Decoder().decodeBuffer(privateKey)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PrivateKey key = keyFactory.generatePrivate(sp); return sign(content,key); } private static String sign(String content,PrivateKey privateKey) { Signature dsa = Signature.getInstance("SHA1withRSA"); dsa.initSign(privateKey); dsa.update(content.getBytes("UTF-8")); byte[] signature = dsa.sign(); return new String(Base64.encodeBase64(signature)); }2 公钥验签
public static boolean verifySignByKey(String content,String oldsign,String publicKey) { X509EncodedKeySpec sp = new X509EncodedKeySpec(new BASE64Decoder().decodeBuffer(publicKey)); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); PublicKey key = keyFactory.generatePublic(sp); return verifySign(content,oldsign,key); } private static boolean verifySign(String content,String oldsign,PublicKey publicKey) { Signature signCheck = Signature.getInstance("SHA1withRSA"); signCheck.initVerify(publicKey); signCheck.update(content.getBytes("UTF-8")); return signCheck.verify(Base64.decodeBase64(oldsign.getBytes())); }