• 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");

    说明:大体是这个步骤,具体还有一些细节代码没有粘贴。


     

  • 相关阅读:
    各操作系统各文件系统支持的最大文件的大小
    Java调用百度地图API
    Java面试宝典(3)Java基础部分
    Java7中的try-with-resources
    Spring学习笔记(6)——IoC的三种注入方式
    cmd中java的编译命令——java和javac、javap
    Spring学习笔记(14)——注解零配置
    java中多种方式解析xml
    双三次插值
    RCNN到faster RCNN 简介
  • 原文地址:https://www.cnblogs.com/lgzh3/p/2327181.html
Copyright © 2020-2023  润新知