一些人说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 <密钥口令> -keyalgTest -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");

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


更多相关文章

  1. JNI基础实验一:调用.so文件--友善之臂Tiny210 android 串口/pwm/A
  2. Android媒体文件metadata是如何实现跟解码器结合获取的
  3. Android 读取U盘或SD卡中的所有.txt文件
  4. gif文件导出png
  5. Android获取SD卡上图片和视频文件及其缩略图
  6. android 读取一个文件下所有的文件
  7. Android搜索手机文件
  8. Android之R文件

随机推荐

  1. android 学习八 android selector的使用
  2. Android自己动手实现下拉刷新控件(1)----典
  3. repo 切换分支一种简单的方法
  4. Android 4.4.2 exfat 移植
  5. Android基础开发之手势识别
  6. React Native Android ScrollView 去除阴
  7. 简述Android消息机制及解惑
  8. Android矢量图(二)--VectorDrawable所有
  9. Android应用项目绑定appcom_v7打包时,出现
  10. Android零基础入门第15节:掌握Android Stu