一些人说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. Windows下搭建Android(安卓)SDK开发环境
  2. Android(安卓)数字签名
  3. android apk签名生成及配置
  4. android 签名验证
  5. Android(安卓)笔记
  6. 如何下载Android(安卓)kernel内核源代码,编译烧写验证
  7. Android(安卓)Socket与HTTPS校验
  8. Android(安卓)Socket与HTTPS校验
  9. Android中的签名验证(1)

随机推荐

  1. 我来说说Android touch 系统的设计哲学
  2. (转)Android AndroidManifest.xml文件的and
  3. Android——自定义View类(一 )
  4. 原生Android也能做Web开发了
  5. Android -- 内存泄漏
  6. HTML5在Android(安卓)IOS等移动平台上的
  7. Android(安卓)Studio 2.0带来的新特性
  8. 用Dbus与android的bluz通信
  9. android按键静音键功能实现
  10. android 开发之旅