java 代码签名_java裸签名代码

标签:裸签名import java.io.File;

import java.io.FileInputStream;

import java.security.KeyStore;

import java.security.PrivateKey;

import java.security.Signature;

import java.util.Enumeration;

import javax.security.cert.Certificate;

import javax.security.cert.X509Certificate;

import com.sun.org.apache.xml.internal.security.utils.Base64;

public class Test {

public static void main(String[] args) {

String str =sign();

verify(str);

}

public static String sign() {

PrivateKey keyOfSigner=null;

java.security.cert.Certificate certOfSigner=null;

try{

File file = new File("F:/pro.pfx");

FileInputStream fis = new FileInputStream(file);

KeyStore keyStore = KeyStore.getInstance("PKCS12");

keyStore.load(fis, "password".toCharArray());

fis.close();

Enumeration enums = keyStore.aliases();

while (enums.hasMoreElements()) {

String keyAlias = (String) enums.nextElement();

if (keyStore.isKeyEntry(keyAlias)) {

keyOfSigner = (PrivateKey) keyStore.getKey(keyAlias,

"password".toCharArray());

certOfSigner =keyStore.getCertificate(keyAlias);

}

}

byte[] encryptedDigest;

Signature signature = Signature.getInstance("SHA1withRSA");

signature.initSign(keyOfSigner);

signature.update("123".getBytes());

encryptedDigest = signature.sign();

System.out.println(Base64.encode(encryptedDigest));

return Base64.encode(encryptedDigest);

}

catch(Exception e){

e.printStackTrace();

}

return null;

}

public static void verify(String str) {

File f = new File("D:/cert.cer");

try {

FileInputStream fs = new FileInputStream(f);

byte[] be = new byte[fs.available()];

fs.read(be);

fs.close();

Certificate x = X509Certificate.getInstance(be);

Signature signature = Signature.getInstance("SHA1withRSA");

signature.initVerify(x.getPublicKey());

signature.update("123".getBytes());

boolean b = signature

.verify(Base64

.decode(str));

//boolean b = signature

//.verify(Base64

//.decode("r50rGj6Hrtq2MEHwrEcQQklEEdeQGokE6RJ84qLsRq/7CR+jdO2pSp4feQW3ufqmu2Cv/jR/T7hRI6qWXVTBZHu/+K2mUnYwk/iOJSQSvzo/fcwqC+HsNaIoWKoDJXIaBLorynd8vd5TeOzmY7FVcrSQG9xSkbA0RSKrRUk8UP1Cu3MuXE0R+YzDPElnwgMIVuM/t8R3WxVjgf4uzDbz/tgUcRHEgWAzD8YQqVR+cNUzjqpN06BmOO13pKqVO5CEY/xppXby7Y/qS7GKhIH7BYRIgoktUeh1TKZ8dsaWpjlyEOMP4YkMOZ1jvU6mGuCtlif92AVJX9OdJIMSBfjyEQ=="));

System.out.println(b);

} catch (Exception e) {

e.printStackTrace();

}

}

}

标签:裸签名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值