标签:gradle gpg pgp gpg4win 签名加密
本篇文章隶属于 《使用 Gradle 发布 AAR 到 Maven 仓库》由于涉及东西较多,该文件还在起草中…
========================================================
作者:qiujuer
博客:blog.csdn.net/qiujuer
网站:www.qiujuer.net
开源库:github.com/qiujuer/Genius-Android
转载请注明出处:http://blog.csdn.net/qiujuer/article/details/44173611
——学之开源,用于开源;初学者的心态,与君共勉!
========================================================
在某系场合我们需要对自己的应用或者文件进行签名加密等操作,其中邮件是最典型的例子。签名加密的工具很多,在本篇中我们使用 GPG 来进行操作。
什么是 GPG ?要说这个还得从 PGP 说起,而 PGP 又是使用 RSA 加密算法进行的,所以要细说的话没个几篇文章是说不完滴,所以还是百度PGP吧。或者你只要知道这是一种加密签名的工具就OK。
这里需要说明一下,Windows 的 GPG 软件与 Mac 的不相同,另外如果你的电脑安装有 Cygwin 那么也自动了该加密签名软件,只不过是命令行操作而已。由于已经使用 Android-Studio 所以编译 NDK 用不上 Cygwin 了,就删除了;这里就演示一下界面的操作,后面如果有机会把命令行操作的加上;抱歉了~~
我这里就演示的是:GPG4win 该款软件。
下载完成自然就是安装了,这个安装基本没有啥说的直接下一步就OK。
在这里,我们运行安装程序中的:Kleopatra,我擦,说好的 GPG 呢?
这里其是就是运行的 GPG 管理器而已。Gpg4win 的核心是 GPG,但包括Kleopatra、GPA、GpgOL、GpgEX和Claws Mail 五个相关工具,其中Kleopatra和 GPA 是 GPG 的密钥管理器,用于生成、导入和导出 GPG 密钥(包括公钥和私钥),一般来说我们使用的也就是这么两个。GpgOL是 Outlook 2003 和2007 的 GPG 支持插件,GpgEX是资源管理器的 GPG 支持插件(不支持 Windows 64 位),Claws Mail 则是一个内置 GPG 支持的邮件客户端;当然邮件管理这个在你进行安装的步骤中会询问你是否安装。
这里我们恰恰需要的是上传公钥到服务器,为什么呢? 当我们发布 AAR 到远程仓库之前是需要使用 私钥 进行签名加密,而后上传到仓库;而仓库管理服务器会根据你的配置进行验证等操作,此时就需要使用到你上传的公钥,如果公钥没有上传将会导致发布 AAR 失败。
第一次点击你将遇到这样的情况,意思就是说你没有设置远程服务器,是否需要设置,如果不设置将会采用默认,这里一般不用设置;如果你托管的仓库有要求的话那就需要了,当然本次教程中的仓库没有该要求。点击 Continue (继续)。
此时你会看见,意思是说:一旦上传到服务器几乎就不可撤销,所以叫你确认你不会进行撤销操作,请你确认,此时继续就OK,然后会链接服务器进行上传,你需要等待一段时间将会提示你上传成功与失败,失败了无所谓你可以再次上传。当然有可能你将会遇到 需要翻墙 的情况,这个就XXX.
创建了一个密钥(公钥+密钥)后自然存在保存以及导入的问题。
回到主界面,在你创建的密钥上右击;可以看见如下目录菜单。
在菜单的最后几项中:
其中的操作相对简单,只需要直接设置目录即可导出,如果没有上传成功到服务器的也可以在这里重新上传。
到这里基本可以完成了,因为如果是用来签名加密 AAR 到这里基本已经OK了,其中的 签名加密 工作可以完全交给 Gradle 来完成,只需要设置好对应的 私钥+私钥密码短语+私钥位置
C:\Users\(YourName)\AppData\Roaming\gnupg
到此基本算是完成了,可以回到发布 AAR 的文章了,如果你不使用 Gradle 进行加密而使用 GPG 软件进行加密的话,那就请看下一节。
启动加密操作向导有三种途径,一种是在Kleopatra主界面中选择 File(文件)菜单中选择 Sign/Encrypt Files(签名/加密文件),一种是将要加密的文件或文件夹拖拽到Kleopatra主界面中,然后在弹出的右键菜单中选择 Sign/Encrypt(签名/加密),一种则是在想要加密的文件或文件夹的右键菜单中选择 Sign and encrypt(签名与加密)。
在这里我使用一个文本文件来进行加密。其中你可以看见有3个选择:加密并签名、仅加密、仅签名。最后一个选择完成后删除源文件,可选可不选。
选择你要使用的密钥对。
点击加密将会输出加密文件。
假如你选择的是他人的公钥,那么Kleopratra 会弹出对话框提示你加密之后你将不能够解密,点击 Continue 确认,保密完成之后点击 Finish 确认即可。 加密完成之后会在源文件所在文件夹生成 .gpg为扩展名的加密文件,现在你可以把这个文件发 给公钥所有者。
我打开加密的文件看看(源文件字符:加密文字)
当别人收到该文件的时候就会使用私钥进行解密,解密的方法也是三种,和加密的操作类似就不再累赘阐述。其操作名为:Decrypt/Verify(解密/验证)。
此时会叫你输入密钥短语,也就是私钥的操作密码。输入成功后你将会成功解密。现在你在看看你的文件是否和原来一样呢?
需要注意的是如果你输入过一次解密短语后后面操作将不会提示输入密钥短语,所以一般来说使用完成后就及时退出。
GnuPG和其他加密工具相比,其非对称性加密的特点使其更适合于机密信息的传递。除了加密解密之外,GPG 还可以对文件进行签名和验证,功能非常强大。
在AAR的发布中并不是使用 GPG 来进行加密而是进行签名,得到签名文件,而后发布到服务器,服务器则根据源文件以及签名文件进行验证,以便判断文件是否在网络传输中导致损坏。
耗时5.5小时,从重新下载软件到截图-编辑-调整….
========================================================
作者:qiujuer
博客:blog.csdn.net/qiujuer
网站:www.qiujuer.net
开源库:github.com/qiujuer/Genius-Android
转载请注明出处:http://blog.csdn.net/qiujuer/article/details/44173611
——学之开源,用于开源;初学者的心态,与君共勉!
========================================================
[Publish AAR To Maven] 使用GPG对文件进行签名加密
标签:gradle gpg pgp gpg4win 签名加密
原文地址:http://blog.csdn.net/qiujuer/article/details/44173611