经过两天的研究以及在GOOGLE上的查询,终于是找到了突破原来GPG的最大密钥限制的方法.
先来说一下,如果是参照我之前的那篇教程使用GPG4WIN的,默认只能生成2048位的密钥,如果想在WINDOWS下生成4096位的密钥的话要这么做:打开CMD,然后输入:gpg –gen-key,之后的可以参考百度上阮一峰的教程/*百度搜索”GPG”第一个应该就是了*/
当然,本文的重点在于突破GPG原版软件的限制,方法如下:
首先,你得在LINUX环境下/*我们要篡改源代码然后编译,WIN下可能会用到MingGW或者CygWin之类的,我没试过*/
当然,如果你有linux的虚拟机或者vps的话,可以在虚拟机上生成,然后再传回来,明白了?生成的时候为了获得更好的随机熵可以使用dd这种复制(备份)磁盘的方式来获得随机数,最后把公钥和私钥加密(这里指的是标准的压缩加密)打包回来.
下载源代码:https://www.gnupg.org/download/index.html
/*GPG4WIN自带的GPG其实版本号是1开头的...那些GPA等等的只是个GUI的Front-End*/
这一步,要下载”GnuPG stable”和在我截图中下面那四个库程序.
解压开GnuPG,我的是在/Downlads/gnupg的目录下/*我的半透明终端好看吧*/
之后在g10这个文件夹下找到一个叫keygen.c的C语言写的文件,用VIM打开它/*当然根据个人喜好使用编辑器哈*/,并且把里面所有的4096替换成8192/*我这儿已经替换成了16384了*/
然后保存退出.
安装其他的库文件,方法如下:
cd到每个库文件所在的文件夹下,然后su到root权限,之后分三步:
./configure
make
make install
那个-error的要先装,这一步卡了我半天,差点把键盘从楼上扔下去.
到达家目录下的/.gnupg目录下/*绝对路径为:/home/[你的用户名]/.gnupg */用vim打开gpg.conf文件,在文件末尾填上如下代码,当然不一定要写这些,可以根据个人密钥生成喜好编写:
personal-cipher-preferences AES256 TWOFISH AES192 AES
personal-digest-preferences SHA512 SHA384 SHA256
personal-compress-preferences ZLIB ZIP
到GnuPG的目录下
./configure
make
make install
之后再到g10目录下.使用下列指令:
./gpg2 –gen-key
就行了,最大可以生成8192位的密钥啦!/*注意,我生成一对8192的密钥花了至少15分钟,且生成密钥的过程中它会让你继续使用电脑以获得最好的随机数的 熵,我是以复制文件的形式来”使用电脑”的,要不然到时候提示你随机数不够得麻烦死*/
哇喔,写得非常棒,我在Ubuntu 16.04 LTS使用文中对应的版本程序进行修改,
当然在条件运算符语句中不是只替换4096,
最后还有gpg-agent的问题,但都顺利解决了。
感谢作者。