zoukankan      html  css  js  c++  java
  • Android数字签名解析(一)

     一、数字签名概述

    所谓"数字签名"就是通过某种password运算生成一系列符号及代码组成电子password进行签名,来取代书写签名或印章。

    数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的。由于别人假冒不了发送方的签名。

    二是数字签名能确


    定消息的完整性。

    由于数字签名的特点是它代表了文件的特征。文件假设发生改变,数字签名的值也将发生变化。



    二、Android系统中数字签名的使用范围

    眼下在android系统中,在两个地方使用了数据签名,一是应用程序。二是OTA升级。

    应用程序中使用数字签名主要用来标识程序的唯一性。OTA升级中使用数字签名主要用来验证数据的完整性。



    三、生成数字签名的方法

    1、用Java中的数字签名工具keytool

    签名首先要有一个keystore文件。keystore是由jdk自带的工具keytool产生。

    window上生成的详细方式例如以下:

    開始-〉执行->cmd->cd到你安装的jdk下的bin文件夹下, 然后输入

    keytool -genkey -alias test.keystore -keyalg RSA -validity 10000 -keystore test.keystore

    然后按回车首先提示输入password。 然后会确认你的password。之后会依次叫你输入相关信息如姓名,组织单位等之后就是输入

    test.keystore 主password(如果和keystorepassword同样。按回车)我在这里设和keystore同样,之后你就会在bin文件夹下找到生成

    的test.keystore。

    相关參数意义例如以下:

    -alias 后跟的是别名, 这里是test.keystore
    -keyalg是加密方式这里是RSA
    -validity是有效期这里是10000天
    -keystore就是要生成的keystore的名称,这里是test.keystore

    keystore生成后。如今能够进行签名了, 如今把你要进行签名的apk放到一个当前文件夹下。然后利用jdk提供的工具

    jarsigner.exe进行签名,详细操作例如以下:

    jarsigner -verbose -keystore test.keystore -signedjar new.apk test.apk test.keystore


    2、在源代码下进行签名

    Android源代码文件夹development ools下有make_key脚本,  用来生成一个密钥对。 这个密钥对与keytool生成的key在形式上不

    一样,但内容和作用是一致的。


    生成公钥:

    openssl genrsa -3 -outtestkey.pem 2048

    转换成X509证书格式:

    openssl req -new -x509 -key testkey.pem -out testkey.x509.pem -days 10000-subj ‘xx’

    生成私钥:

    openssl pkcs8 -in testkey.pem-topk8 -outform DER -out testkey.pk8 –nocrypt


    APK签名命令:


    java -jar signapk publickey.x509[.pem]privatekey.pk8 input.apk output.apk

    升级包进行签名: (注:理论上用keytool应该也能对升级包进行签名。但眼下我还不知道详细步骤)

    java -jar signapk –w publickey.x509[.pem]privatekey.pk8 input.zip output.zip

  • 相关阅读:
    Java并发基础10:原子性操作类的使用
    Java并发基础09. 多个线程间共享数据问题
    Java并发基础08. 造成HashMap非线程安全的原因
    Java并发基础07. ThreadLocal类以及应用技巧
    Java并发基础06. 线程范围内共享数据
    Java并发基础05. 传统线程同步通信技术
    Java并发基础04. 线程技术之死锁问题
    我是如何从通信转到Java软件开发工程师的?
    IOS 判断耳机插入/拔出
    海量数据处理
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10605194.html
Copyright © 2011-2022 走看看