精华内容
下载资源
问答
  • Linux使用PGP签名验证文件完整性

    万次阅读 2017-08-11 20:04:37
    文件在下载及存储过程中可能由于传输错误、硬件故障、文件系统错误等网络、硬件和软件方面的原因导致文件损坏,也可能传输过程...常用的文件校验方法有SHA、MD5、CRC和PGP签名等。本文主要阐述一下Linux使用P...

    文件在下载及存储过程中可能由于传输错误、硬件故障、文件系统错误等网络、硬件和软件方面的原因导致文件损坏,也可能在传输过程中受到攻击(如“中间人攻击”)导致下载的文件被篡改或者下载到了其它非原始文件。所以,在使用一个文件之前(如安装一个软件或操作系统)最好先对文件进行完整性(或者说“原始性”)的检验。常用的文件校验方法有SHA、MD5、CRC和PGP签名等。本文主要阐述一下在Linux上使用PGP证书校验文件完整性的操作步骤。

    下载提供有PGP证书的文件

    这里我们下载的是VeraCrypt(下载地址:点击这里)。我们可以看到,每个文件后面都提供有对应的PGP Signature,下载时我们要把文件和文件对应的PGP Signature都下载下来放到一个文件夹里。
    图 1

    注:下面的操作步骤使用Ubuntu进行演示。需要注意的是,在Ubuntu中不能校验Windows下使用的文件对应的PGP数字签名。如图:
    图 2

    在文件和文件PGP签名所在的文件夹中打开终端

    图 3

    输入gpg -–verify PGP签名文件名

    如我这里的PGP签名文件名是“veracrypt-1.21-setup.tar.bz2.sig”(签名文件一般以.sig或.asc结尾),所以我输入的命令就是

    gpg –verify veracrypt-1.21-setup.tar.bz2.sig

    回车执行后如下图所示。这一步操作的目的主要是为了获取从公钥服务器上下载公钥的“钥匙号”,如图中的钥匙号为“54DDD393”。
    图 4
    但是,在上图中我们可以看到“完好的签名”这一提示,这表明PGP校验已经完成(“gpg -–verify PGP证书文件名”这一命令本身就可以在已经导入公钥的前提下直接校验文件完整性,但是在没有导入公钥时运行这一命令可以使用得到的钥匙号去公钥服务器上下载公钥)。这是因为我之前已经进行过一次检验,公钥已经导入到了本地,下面我们把本地公钥删除,重新进行一次校验。我们可以使用“gpg -k”命令查看当前系统中的公钥:
    图 5
    现在可以知道,公钥pubring.gpg在一个名为“gnupg”的隐藏文件夹里,我们进到这个文件夹里,用rm命令将它删除:
    图 6
    然后再执行“gpg -–verify PGP证书文件名”:
    图 7
    这次的运行后仍得到了钥匙号,但是没有出现“完好的签名”这样的提示,而是“无法检查签名”,这说明本地此时并没有可以用于检验签名的公钥。

    注:在这里我们可以看到,我们要验证的是PGP签名,使用的却是“gpg”命令,关于PGP和GPG的更多内容可以查看我的另一篇博文电子邮件加密技术初探

    输入gpg –keyserver hkp://pgp.mit.edu –recv-keys 钥匙号

    图 8

    输入gpg -–verify PGP签名文件名

    图 9
    至此,我们看到了“完好的签名”这样的提示,这说明文件本身基本可以保证是完整的。
    注:上一步出现了警告“没有找到任何绝对信任的秘钥”,这一步操作也有类似的警告“没有证据表明这个签名属于他所声称的持有者”。也就是说,秘钥本身也是可以被伪造的,PGP签名只是检测文件是否完整的一个参考。PGP签名的原理就是使用非对称秘钥加密技术和数字摘要技术产生一段只有文件的原始发布者才能产生的数字串。我们对文件进行PGP签名校验,就是要使用公钥解密文件的原始发布者使用私钥加密的签名,核对上述中的“数字串”是否和原来一致。为了方便获取公钥,人们一般把公钥上传到公钥服务器中。有时候人们为了防止PGP签名本身被伪造,还提供了SHA256用于对PGP签名文件本身的完整性进行检测。

    附:PGP公钥服务器列表:
    http://keyserver.ubuntu.com
    http://keys.gnupg.net
    hkp://subkeys.pgp.net
    hkp://pgp.mit.edu
    hkp://pool.sks-keyservers.net
    hkp://zimmermann.mayfirst.org

    有一个网站不断统计着几乎所有公钥服务器上的公钥数目(网站地址:https://sks-keyservers.net/status/),如图:
    图 10

    其实我一直觉得Linux操作系统很难使用,一方面在Windows上常使用的软件很少有支持Linux的,另一方面使用Linux时总会遇到各种障碍。当我学会在Linux上使用PGP证书校验文件完整性之前,我对Linux优势的了解仅仅是占用内存小且开源免费,自从实际操作了PGP证书校验文件我才真正开始感觉到了Linux在处理一些专业任务上的便捷性。

    end
    更多内容请访问我的个人主页http://zhaokaifeng.com/

    展开全文
  • 生成jks签名文件 选择Build > Generate Signed APK… 选择项目app > Next 选择Create new… 选择签名文件的路径,这些信息和eclipse一样了,填完点击OK 选择Next 我们这里做测试...

    生成jks签名文件

    选择Build > Generate Signed APK…

    这里写图片描述

    选择项目app > Next

    这里写图片描述

    选择Create new…

    这里写图片描述

    选择签名文件的路径,这些信息和eclipse一样了,填完点击OK

    这里写图片描述

    选择Next

    这里写图片描述

    我们这里做测试选择qihu360和xiaomi打包release版,最后点击Finish

    这里写图片描述

    等待生成

    这里写图片描述

    生成完毕提示我们查看,选择在文件夹查看

    我们可以看到两个apk生成好了,现在我们做测试 
    这里写图片描述

    安装小米版本 
    这里写图片描述

    这里写图片描述

    测试qihu360版本,先把xiaomi的卸载了,因为报名一样版本号一样,所以只能存在一个

    这里写图片描述

    这里写图片描述

    最后修改我们的上一篇中的签名配置,然后我们重新签名打包

    这里写图片描述

    我们选择assembleRelease 点击Run

    这里写图片描述

    打包完毕,查看测试

    这里写图片描述

    这里写图片描述

     

    获取md5,sha1,sha256:

    在termal中指令:

    keytool -list -v -keystore "debug.keystore绝对路径"

    展开全文
  • 最近定制系统应用开发用到了系统签名,系统那边给了platform.pk8,platform.x509.pem两个文件 这里记录一下如何使用 首先AndroidManifest.xml 加上 android:sharedUserId="android.uid.system" 系统签名两种...

    最近定制系统应用开发用到了系统签名,系统那边给了platform.pk8,platform.x509.pem两个文件

    这里记录一下如何使用

    首先在AndroidManifest.xml 加上

    android:sharedUserId="android.uid.system"

    系统签名两种方式

    一:对APK文件进行签名

    在Android源码目录:android/build/target/product/security/ 找到签名文件“platform.pk8”和“platform.x509.pem

    签名工具目录:android/prebuilts/sdk/tools/lib 找到签名工具:signapk.jar 

    建议使用从系统里面拷出来的工具,signapk.jar工具,理论上是平台通用,但也遇到过能签名能装APP但是签名无效的,最好就是用从系统拷出来的signapk.jar来签名

    工具下载地址:

    限速云链接:https://pan.baidu.com/s/1K4meCgJyPbpNLOcazMgDxA 提取码:oy5g 
    CSDN链接:https://download.csdn.net/download/u011046184/11175754

    新建一个目录(任意位置),把这三个文件放进去

    管理员模式运行cmd  cd进到放这三个文件的文件夹,

    cmd执行以下指令,其中input.apk为要签名的apk文件, output.apk为签名后输出的apk文件,即可为APK文件进行系统签名;
     

    java -jar signapk.jar platform.x509.pem platform.pk8 input.apk output.apk

    二:生成jks文件直接配置在build.gradle

    基本步骤同上(需要OpenSSL环境)

    OpenSLL安装软件下载:https://download.csdn.net/download/u011046184/12514153

    系统Path环境变量添加 C:\OpenSSL-Win64\bin 即可

    取到源码目录下的三个文件,新建一个文件夹(任意位置)

    管理员模式运行cmd  cd进到放这三个文件的文件夹

    cmd执行以下指令即可生成xx.jks文件

    生成platform.pem文件

    openssl pkcs8 -inform DER -nocrypt -in platform.pk8 -out platform.pem

    生成platform.p12文件  设置别名和密码也就是Android studio打包APK文件时输入的别名和密码

    openssl pkcs12 -export -in platform.x509.pem -out platform.p12 -inkey platform.pem -password pass:android -name key

    生成platform.jks文件(钥匙文件)(-srcstorepass android)这个是.jks文件的密码

    keytool -importkeystore -deststorepass android -destkeystore ./platform.jks -srckeystore ./platform.p12 -srcstoretype PKCS12 -srcstorepass android

    直接copy以上指令生成的.jks密码为:android   别名:key  别名的密码:android

    Generate Signed APK使用

    直接配置到build.gradle使用

    build.gradle配置如下即可直接在调试时也打上系统签名进行调试:

    signingConfigs {
            release {
                storeFile file("C:/Users/Administrator/sigapk/test.jks") .jks文件的路径
                storePassword 'key密码'
                keyAlias '你设置的key别名'
                keyPassword 'key别名的密码'
            }
            debug {
                storeFile file("C:/Users/Administrator/sigapk/test.jks") .jks文件的路径
                storePassword 'key密码'
                keyAlias '你设置的key别名'
                keyPassword 'key别名的密码'
            }
        }
        buildTypes {
            debug {
                signingConfig signingConfigs.debug
            }
            release {
                signingConfig signingConfigs.release
            }
        }
    展开全文
  • Python给指定文件数字签名

    千次阅读 2019-11-20 11:45:14
    Python给指定文件数字签名 数字签名概念: 数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似...

    Python给指定文件打上数字签名

    数字签名概念:

    数字签名(又称公钥数字签名)是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。它是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术来实现的,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。数字签名是非对称密钥加密技术数字摘要技术的应用。(来源于百度百科)

    数字签名作用:

    个人感觉 主要是为了保证文件安全性,完整性。就是如果有人修改了文件的部分,实质上,数字签名也会随之改变,就能进行判别。

    实战添加数字签名:

    • 环境配置(Win10环境下):

      1. makecert.exesigntool.exe:这两个文件是主要作用是在一个是创建证书,一个是打签名时候使用,只要安装VisualStudio就自带了。
      2. python3:这个是用来写代码的。。
    • 代码:

      #打标签工具
      
      import subprocess
      
      def signtool(filename):
          signtool_exe = r'C:\Program Files (x86)\Microsoft SDKs\ClickOnce\SignTool\signtool.exe' # signtool exe
          pfx_file = r'E:\certs\server.pfx' # pfx位置
          cmd = '%s sign /f %s /p 12421242 /v %s' % (signtool_exe, pfx_file, filename)
          proc = subprocess.Popen(cmd)
          proc.wait()
      
      signtool(r'F:\565\code\sign\1.exe')
      
    • 运行结果:

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 可以看出,已经打上数字签名了。

    展开全文
  • 本人比较lower一直使用doc命令,生成签名文件,一直使用keystore,最近遇到一个同行用的jks,但是现在很大大平台提供的加固包也就是加壳包,都需要keystore,研究了下,实现jks文件转换为keystore文件需求。...
  • 文章目录背景查看签名信息方式一:使用keytool工具方式二:使用微信提供的工具方式三:某些在线工具生成应用签名文件方式一:使用keytool工具方式二:使用android studio生成v1和v2签名文件的区别APK签名方式一:...
  • ios 描述文件 本地签名

    千次阅读 2019-03-13 19:48:43
    ios描述文件本地签名 ::: tip 主要步骤: 1.到苹果开发中心下载ios的下载正式的证书 2.将证书.cer到导入mac系统导出.p12文件 3.分离p12文件中的证书和私钥 4.下载 Apple Root Certificate 和 Apple Intermediate ...
  • android studio gradle文件中配置签名

    千次阅读 2016-09-29 09:30:45
    例如,我的签名文件是“xxxx.jks”,我首先把它复制到app目录下: 下面我只用gradle中android下面添加如下两个配置: 1.配置签名文件和相关的key: signingConfigs {  release {  ...
  • Android 安装包没有签名文件问题

    万次阅读 2019-06-19 23:21:12
    当使用Android studio 打好一个release 包,上传到市场平台的时候,却被...确实签名文件应该META-INF文件夹下,后缀名是.RSA的文件,确实是没有。 查看了一下自己的打包过程,发现了一个小问题: V2这种签名方...
  • 原文地址:...本文档介绍了如何一个PDF文档的数字签名和什么代表签名的相关特征的PDF语言支持。Adobe阅读器和Acrobat®有®® 实现了所有P
  • java实现pdf文件电子签名

    热门讨论 2016-05-06 10:47:21
    本示例通过java自动生成pfx证书,根据生成的证书,自动实现对pdf文件的电子签名
  • 签名文件Sign.jar

    热门讨论 2014-07-02 22:28:57
    签名文件,可以将应用进行系统签名操作,实现默认的安装和卸载
  • 超强EXE资源修改器--修改文件内容文件签名等等 强大超强EXE资源修改器--修改文件内容文件签名等等 强大超强EXE资源修改器--修改文件内容文件签名等等 强大
  • SignTool V1.0.00 [官网下载] 有时候由于某些原因我们需要换证书提审,...其实我们只要使用新证书对ipa文件重新签名就可以了,无须再让CP重新打包。只是手动去签名有些繁琐,我自己就开发个签名工具(SignTool)去...
  • Android 签名文件

    千次阅读 2018-09-17 15:10:44
    由于现在开发android JDK基本都是用的1.7及以上,所以低版本的JDK的就不记录了。 首先找到一个文件夹,以下操作都同一个文件夹内,这样是为了更加方便,当然也可以...一、创建签名文件 命令: keytool -genkey ...
  • Android studio 获取应用签名文件(keystore文件)的MD5值
  • android studio 生成签名文件

    千次阅读 2019-12-12 12:06:43
    1. as菜单栏中找到“bulid”这一栏,选择“Generate Signed APK” 2.点击Apk,然后新建一个文件 3.填写完整的签名信息 签名文件名会有默认名,自己修改,最好加上后缀.jks,虽然不加没啥影响 别名写...
  • 1、确保有如下文件: (1)mbaike.crt(https服务器...(3)ca-bundle.pem(startssl官网下载的跟证书文件,具体的哪里下载,请startssl控制面板中查找) (4)unsigned.mobilecofig文件(IOS端生成的未签名的配置描述文
  • 本片文章只讲如何将签名文件配置项目代码中。 如上图所示:项目根目录下新建signing文件夹,并将签名文件放到该文件夹下。 依据上面配置后会app目录下的build.gradle文件中生成: signing...
  • 驱动签名及创建cat文件

    热门讨论 2014-05-28 10:23:27
    windows驱动文件.sys和.inf文件如何创建cat文件签名的方法流程。当然,前提需要有一个微软的证书。
  • 简介开发中有时需要debug模式使用正式签名,比如微信的支付功能必须需要正式签名,将debug签名配置为正式签名,然后就可以开心的run了,再也不用担心run起来一些以签名作为授权的sdk无法正常使用!步骤 将...
  • android studio 创建签名文件

    千次阅读 2019-10-16 20:02:53
    使用android studio创建签名文件的流程比较简单,下面直接贴出创建签名文件的步骤,使用的android studio版本是3.4.2。 1. 打开Build->Generate Signed Bundle / Apk 2. 选择APK,点击Next 3. 弹出的...
  • Jar 文件数字签名

    千次阅读 2006-09-06 21:38:00
    一个签名的 JAR 文件与原来的 JAR 文件完全相同,只是更新了它的 manifest,并 META-INF 目录中增加了两个文件,一个签名文件和一个签名文件。 JAR 文件是用一个存储 Keystore 数据库中的证书签名的。存储 ...
  • CAT文件数字签名使用技巧

    千次阅读 2018-04-07 05:32:26
    导语:本文作为数字签名研究系列文章的基础内容,介绍两种数字签名的添加方法,分析CAT文件数字签名的特点,并且纠正一名读者对我文章的回复0x00 前言Windows系统中的重要文件常常会被添加数字签名,用来防止被篡改...
  • 2、选择数字签名,然后文档中要签名的位置单击并绘制一个区域 3、创建签名证书,点击“签名为:”下拉框,选择“新建ID” 4、 创建签名图片,点击“外观:”下拉框,并选择“创建新外观” 5、输入第3步...
  • 使用Andriod 编写完成的程序,要发布成可供手机真机使用的程序,需要三个步骤:  1.制作数字签名;... 制作Andriod程序的数字签名需要使用JDK,先确认本机是否安装了JDK,JDK目录下有一个KEYTOOL工具

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 315,774
精华内容 126,309
关键字:

如何在文件上签名