android 创建数字签名应用程序

一些人说android只支持BKS证书。不知道真还是假,所以首先创建了BKS证书。

步骤:

1、下载bcprov-jdk16-141.jar,放到\jre\lib\ext目录下

2、修改文件  jre6\lib\security\java.security, 在文件中添加:  security.provider.10=org.bouncycastle.jce.provider.BouncyCastleProvider

   在这个文件中找到security.provider字样,后面序号递增,本机递增到10

3、创建keystore。命令:

      keytool -genkey -alias <别名> -keypass <密钥口令>  -keyalg Test -keysize 1024 -validity 365 -keystore <库文件名,如runcerts.keystore> -storepass <证书库密码> -dname "cn=testUsr, ou=产品部, o=XXX公司, c=CN, S=shandong" -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

 4、签名及验证

   //读取密钥库:

   FileInputStream is=new FileInputStream("C:\\Inetpub\\runcerts.keystore");
    KeyStore ks=KeyStore.getInstance("BKS","BC");
    ks.load(is,"123456".toCharArray());
   is.close();
  

//读取私钥
 PrivateKey priKey1=(PrivateKey)ks.getKey("test2", "123456".toCharArray());
  privateKeyString =getKeyString(priKey1);

//签名
   SignText=DataSign(plainText,privateKeyString); 

//以下验证  
    //获得证书

  Certificate certificate=ks.getCertificate("test2");
  //获得证书
  PublicKey publicKey1=certificate.getPublicKey();
  
  publicKeyString=getKeyString(publicKey1);
  

//验证
  byte[]plainText1="Happy New Year!!Email:@qq.com".getBytes(); 
  boolean verySign=verify(plainText1,publicKeyString,SignText);
  String s2 = new Boolean(verySign).toString();
  System.out.print("验证结果:"+s2+"/n");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值