SHA1WithRSA 签名如何实现

xy_huangzhanglei 2015-10-16 09:00:18
在网上找了些代码,但都不完整,谁能贡献一份完整的函数吗,谢谢!!
...全文
5150 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
m0_37337907 2018-11-21
  • 打赏
  • 举报
回复
楼主 这是安卓代码 怎么转成ios代码
/**
* 用私钥对信息生成数字签名
* @param content 加密数据
* @param privateKey 私钥
* @return
* @throws Exception
*/
public static String sign(Map<String, String> content, String privateKey)throws Exception{
try {
/** 生成私钥 */
// 解密私钥
byte[] keyBytes = Coder.decryptBASE64(privateKey);
//构造PKCS8EncodedKeySpec对象
PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(keyBytes);
// 指定加密算法
KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORTHM);
// 取私钥匙对象
PrivateKey privateKey2 = keyFactory.generatePrivate(pkcs8EncodedKeySpec);
// 用私钥对信息生成数字签名
Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
signature.initSign(privateKey2);
signature.update(getSigningStr(content).getBytes());
byte[] signed = signature.sign();
return new String(Base64.encodeBase64(signed, false));
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("无此算法", e);
} catch (SignatureException e) {
throw new RuntimeException("签名异常", e);
} catch (InvalidKeyException e) {
throw new RuntimeException("私钥非法", e);
}
}
疯狂的玖号 2016-09-20
  • 打赏
  • 举报
回复
/** * <p> * 用私钥对信息生成数字签名 * </p> * * @param data * 加密数据 * @param privateKey * 私钥(BASE64编码) * * @return * @throws Exception */ public static String sign(byte[] data, String privateKey) throws Exception { // 解密由base64编码的私钥 byte[] keyBytes = Base64Utils.decode(privateKey); // 构造PKCS8EncodedKeySpec对象 PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes); // KEY_ALGORITHM =RSA 指定的加密算法 KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); // 取私钥匙对象 PrivateKey privateK = keyFactory.generatePrivate(pkcs8KeySpec); // 用私钥对信息生成数字签名SIGNATURE_ALGORITHM = SHA1WithRSA Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM); signature.initSign(privateK); signature.update(data); return Base64Utils.encode(signature.sign()); }
xiaojianace 2016-08-08
  • 打赏
  • 举报
回复
大神,求源码 237337967@qq.com
ss120909 2016-02-05
  • 打赏
  • 举报
回复
有PB可以调用的吗?
xy_huangzhanglei 2015-10-16
  • 打赏
  • 举报
回复
@shadowpj EVP_MD_CTX_init、RSA_sign、EVP_MD_CTX_cleanup、EncodeString这四个函数都在什么地方呢?
shadowpj 2015-10-16
  • 打赏
  • 举报
回复
兄弟你有福了!我也搞了半天。才能出来。链接:http://blog.csdn.net/star1010/article/details/47809449
发帖
Delphi

5159

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2015-10-16 09:00
社区公告
暂无公告