添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
曾经爱过的蜡烛  ·  在Visual ...·  6 月前    · 

RSA1、RSA256 签名
public static String MakeSign(String Data) {
try {
byte[] data = Data.getBytes();
byte[] keyBytes = base64String2Byte(PrivateKey);

PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);

KeyFactory keyFactory = KeyFactory.getInstance("RSA");

PrivateKey priKey = keyFactory.generatePrivate(pkcs8KeySpec);

Signature signature = Signature.getInstance("SHA256withRSA");//这个根据需求填充SHA1WithRSA或SHA256WithRSA
signature.initSign(priKey);
signature.update(data);

return byte2Base64String(signature.sign());
} catch (Exception e) {
return "";
}
}
// base64字符串转字节数组
2   public static byte[] base64String2Byte(String base64Str) {
3     return Base64.decodeBase64(base64Str);
4   }
RSA1、RSA256 验签
`public static boolean VeriSign(String Data_ori, String Singnature) {
try {
byte[] signed = base64String2Byte(Singnature);

X509EncodedKeySpec keySpec = new X509EncodedKeySpec(base64String2Byte(PublicKey));
KeyFactory keyFactory = null;
keyFactory = KeyFactory.getInstance("RSA");
PublicKey publicKey = keyFactory.generatePublic(keySpec);

Signature signature2 = Signature.getInstance("Sha256WithRSA");//这个根据需求填充SHA1WithRSA或SHA256WithRSA
signature2.initVerify(publicKey);
signature2.update(Data_ori.getBytes("UTF-8"));
boolean verify = signature2.verify(signed);
return verify;
} catch (Exception e) {
return false;
}
}
SHA256withECDSA验签
public static boolean verifySign(String _data, String _key, String _sign) {
try {
java.security.spec.X509EncodedKeySpec bobPubKeySpec = new java.security.spec.X509EncodedKeySpec(
new BASE64Decoder().decodeBuffer(_key));
KeyFactory keyf = KeyFactory.getInstance("EC"); //ECC 可根据需求更改
PublicKey publicKey = keyf.generatePublic(bobPubKeySpec);

byte[] data = hexStringToBytes(_data);
byte[] sig = hexStringToBytes(_sign);

Signature signer = Signature.getInstance("SHA256withECDSA");
signer.initVerify(publicKey);
signer.update(data);
return (signer.verify(sig));
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
return false;
}

转自:http://www.cnblogs.com/cxygg/p/9468653.html MD5 SHA1 SHA256 SHA512 这4种本质都是摘要函数,不通在于长度 MD5 是 128 位, SHA1 是 160 位 , SHA256 是 256 位,SHA512 是512 位。 SHA1 With RSA 他的 核心算法是 先用 sha1 去摘要,然后使用 RSA 加密。但是 他在 ... SHA1 安全哈希算法(Secure Hash Algorithm)主要适用于数字 签名 标准 (Digital Signature Standard DSS)里面定义的数字 签名 算法(Digital Signature Algorithm DSA) RSA 是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 SHA1 With RSA :用SHA算... I'm generating a key pair using the secp256k1 curve. Then I'm using the private key to sign a random String:byte[] content = "random string".getBytes();Signature dsa = Signature.getInstance(" SHA256 wit... java MD5With RSA 算法 首先我们来看 Java 中的 MD5with RSA 签名 JAVA private static final String SIGNATURE_ALGORITHM = "MD5with RSA "; import java .security.KeyFactory; import java .security.PrivateKey; import java .securi... 写在文章中之前:网上当前很多关于jarsigner对APK 签名 的讲法,但是有些讲的很粗糙,有些还在就在在抄袭他人的文章,而自己却没有去验证是否正确。 一、由于自己在工作中要用到jarsigner对apk进行最后的发布 签名 ,所以自己也去看了一下具体怎么搞,不足之处欢迎读者指出,在此感谢杨立先生的指导。 二、关于jarsigner的具体介绍请查阅:http://docs.oracle.com/ja 一、 ECDSA 概述 椭圆曲线数字 签名 算法( ECDSA )是使用椭圆曲线密码(ECC)对数字 签名 算法(DSA)的模拟。 ECDSA 于1999年成为ANSI标准,并于2000年成为IEEE和NIST标准。它在1998年既已为ISO所接受,并且包含它的其他一些标准亦在ISO的考虑之中。与普通的离散对数问题(discrete logarithm problem DLP)和大数分解问题(inte... //验证 签名 $algo = " SHA256 "; // 304402205E4799D8E8199184FB7613000781EE5D7AE2E27121733E8B391FD33C51BD80C7022039EAF55B1C3958F39764D64EC18945E1... Java 实现 ECC 非对称加密算法加解密和 签名 验签前言一、ECC 椭圆曲线算法简介二、ECC 加解密代码实例1.生成 ECC 密钥2.ECC 加解密3.测试代码三、ECC 签名 验签代码实例1. ECC 签名 验签2. 测试代码 文章字数比较多,可直接查看代码:源码地址,文中描述有误的地方欢迎各位大神指导。 一、ECC 椭圆曲线算法简介 ECC是椭圆曲线算法,其加密算法叫ECIES, 签名 算法叫 ECDSA 。JDK 并不支持 ECC 算法,可以引入 BouncyCastle 库使用。ECC算法相当耗费资源 签名 的概念 目的: 为了确认某个信息确实是由某个发送方发送的,或者某个发布内容确实是由发送方发布的,任何人都不可能伪造消息,并且,发送方也不能抵赖。 方法: 对发布的信息内容,通过某种可靠的加工(比如进行MD5运算),生成 签名 标识(字符串序列或者证书之类) 验证: 任何人拿到发布的信息内容后,可以通过同样的加工,得出 签名 标识,如果比对和发布者公布的 签名 一致,则验证为真。 签名 与加密区别: 加密是为了不让别人知道原来的信息, 签名 是为了保证大家获取到的原来的信息是没有经过改动的。 签名 算法 1、MD5