`
myrl1023
  • 浏览: 35959 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java---gpg加密

    博客分类:
  • j2se
gpg 
阅读更多

下面操作:
生成密钥:

C:\Documents and Settings\admin>gpg --gen-key   //输入此命令
gpg (GnuPG) 2.0.17; Copyright (C) 2011 Free Software Foundation, Inc
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
   (1) RSA and RSA (default)
   (2) DSA and Elgamal
   (3) DSA (sign only)
   (4) RSA (sign only)
Your selection? 1    //只有1可以用于加密,其它用于签名
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)  // 选择密码的位数,位数越大越安全,但速度慢
Requested keysize is 2048 bits
Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years
Key is valid for? (0) 0   //根据实际情况选择密钥时限 0表示永久


Key does not expire at all
Is this correct? (y/N) y //确认

GnuPG needs to construct a user ID to identify your key.

Real name: myname   //请输入真实姓名,以后会用到
Email address: myemail@server.com  //输入邮箱,不能重复
Comment: comment    //可以为空
You selected this USER-ID:
    "raolin (use for GPG Encrypt) <myrl1023@126.com>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o //输入o确认
You need a Passphrase to protect your secret key.  //输入两次密码

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
gpg: C:/Documents and Settings/raolin/Application Data/gnupg/trustdb.gpg: trustd
b created
gpg: key 8CC6954D marked as ultimately trusted    //密钥ID
public and secret key created and signed.

gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u
pub   2048R/8CC6954D 2011-08-02
      Key fingerprint = 2D3F A584 6B77 59E6 E937  650E 9867 920D 8CC6 954D
uid                  raolin (use for GPG Encrypt) <myrl1023@126.com>
sub   2048R/D55E7B91 2011-08-02


========================================
C:\Documents and Settings\admin>gpg --output revoke.asc --gen-revoke 8CC6954D  //密钥回收

sec  2048R/8CC6954D 2011-08-02 raolin (use for GPG Encrypt) <myrl1023@126.c

Create a revocation certificate for this key? (y/N) y
Please select the reason for the revocation:
  0 = No reason specified
  1 = Key has been compromised
  2 = Key is superseded
  3 = Key is no longer used
  Q = Cancel
(Probably you want to select 1 here)
Your decision? 0
Enter an optional description; end it with an empty line:
> revoke file generation
>
Reason for revocation: No reason specified
revoke file generation
Is this okay? (y/N) y

You need a passphrase to unlock the secret key for
user: "raolin (use for GPG Encrypt) <myrl1023@126.com>"
2048-bit RSA key, ID 8CC6954D, created 2011-08-02

ASCII armored output forced.
Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!

==============================================
C:\Documents and Settings\admin>gpg -o C:\public-gpg -a --export 8CC6954D   //导出密钥公钥


C:\Documents and Settings\admin>gpg -o c:\secret-key -a --export-secret-keys 8CC6954D   //导出密钥私钥




C:\Documents and Settings\admin>gpg --list-sigs    //列出密钥使用 gpg --list-keys

C:/Documents and Settings/admin/Application Data/gnupg/pubring.gpg
-------------------------------------------------------------------
pub   2048R/8CC6954D 2011-08-02
uid                  raolin (use for GPG Encrypt) <myrl1023@126.com>
sig 3        8CC6954D 2011-08-02  raolin (use for GPG Encrypt) <myrl1023@126.com
>
sub   2048R/D55E7B91 2011-08-02
sig          8CC6954D 2011-08-02  raolin (use for GPG Encrypt) <myrl1023@126.com



>
//列出密钥和签字使用 gpg --list-keys
//列出并检查密钥签字 gpg --check-sigs


C:\Documents and Settings\admin>gpg --check-sigs  
C:/Documents and Settings/admin/Application Data/gnupg/pubring.gpg
-------------------------------------------------------------------
pub   2048R/8CC6954D 2011-08-02
uid                  raolin (use for GPG Encrypt) <myrl1023@126.com>
sig!3        8CC6954D 2011-08-02  raolin (use for GPG Encrypt) <myrl1023@126.com
>
sub   2048R/D55E7B91 2011-08-02
sig!         8CC6954D 2011-08-02  raolin (use for GPG Encrypt) <myrl1023@126.com
>



C:\Documents and Settings\admin>gpg -ear  myname c:/123.txt     //myname 为生成密钥时输入的用户    c:/123.txt  要对那个文件进行加密   加密码后生成的文件为c:/123.txt.asc
-e GPG加密
-a 加成ASCII
-r 指定用户加密码


C:\Documents and Settings\admin>gpg -d c:/123.txt.asc >c:/1233.txt //解密




使用JAVA 调用些命令:
package windows;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class CallCmdInJava {

	/**
	 * 
	 * @param command
	 * @return
	 * @throws IOException
	 */
	public static String callCmd(String command) throws IOException{
		try{
		Runtime r = Runtime.getRuntime(); 
		Process p = r.exec(command); 
		BufferedReader br = new BufferedReader(new InputStreamReader(p 
		.getInputStream())); 

		p.getOutputStream().flush(); 
		p.getOutputStream().close();
      
		String message=""; 
		StringBuffer result = new StringBuffer();
		while((message = br.readLine())!= null){ 
		      result.append(message).append("\n"); 
	 
		} 
		return result.toString();
		} catch (IOException e) {
			
			return e.getMessage();
			
		}
		
	}

	public static void main(String[] args) {
     try {
		System.out.println(callCmd("c:\\text.bat"));
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	}
}




text.bat:



set path=%path%;C:\Program Files\GNU\GnuPG\pub  #这是GPG的安装目录,然后输入要执行的cmd 命令 如下
# gpg --list-sigs

#gpg --check-sigs 


 gpg -ear  myname c:/123.txt  #加密123.txt 文件--自动生成123.txt.asc文件
#gpg -d c:/123.txt.asc >c:/1233.txt



分享到:
评论

相关推荐

    gpg-java:GnuPG命令行工具的Java绑定

    总之,gpg-java是Java开发者在处理加密任务时的一个强大工具,它使得GnuPG的功能得以在Java环境中优雅地运用,提高了开发效率并确保了代码的安全性。无论是小型项目还是大型应用,这个库都能提供必要的加密支持,...

    gpg4win-3.1.14.exe gpg的windows版本安装包

    gpg4win,全称为GNU Privacy Guard for Windows,是GnuPG(GNU Privacy Guard)在Windows操作系统上的实现,它提供了强大的数据加密和数字签名功能,是保护信息安全的重要工具。本文将深入探讨gpg4win在Windows环境...

    gpg加密签名2.0-版本

    Maven作为Java项目管理和集成工具,其中央仓库是全球开发者共享和获取依赖的重要平台。为了确保代码的完整性和来源可靠性,Maven引入了PGP(Pretty Good Privacy)加密签名机制。本文将详细介绍"PGP加密签名2.0版本...

    bouncy-gpg:再次将Bouncy Castle与OpenPGP结合使用会很有趣!

    只需几行代码即可加密,解密,签名和验证GPG / PGP文件 通过使用读取加密文件来保护所有 您甚至可以-永远不要让纯文本打入您的服务器磁盘! 例子 Bouncy GPG内置了几个。 密钥管理 Bouncy GPG支持读取gpg 密钥环和...

    运用加密技术保护Java源代码

    3. **加密工具如PGP、GPG、GNU Privacy Guard等**:这些工具可以帮助开发者加密源代码文件,在需要时再解密。 #### 具体实施步骤 下面将通过一个简单的示例来展示如何使用自定义ClassLoader来实现Java源代码的加密...

    PGP 加解密及签名验签示例

    - 可能使用了Bouncy Castle库,这是一个广泛用于Java的加密库,支持PGP标准。 在实际应用中,PGP还涉及到密钥管理,包括密钥生成、存储、分发和撤销。了解并正确使用这些概念对于确保数据安全至关重要。通过分析`...

    JDK8 JCE 支持256位加密

    - 密码学应用:如PGP、GPG等加密软件,以及基于Java的加密库和框架,都可以利用JCE实现高强度的加密功能。 为了启用256位加密,开发者需要将`UnlimitedJCEPolicyJDK8`中的策略文件替换到JDK的`jre/lib/security`...

    Java-Card-FluffyPGP-Applet:Applet实现了智能卡的OpenGPG卡v 2.0.1规范-开源

    Java-Card-FluffyPGP-Applet是一个开源项目,其目标是实现OpenGPG卡规范的版本2.0.1,将加密功能集成到智能卡中。OpenGPG卡是一种标准,允许用户在小巧、安全的硬件设备上存储他们的公钥和私钥,用于执行加密和数字...

    加解密实验 java环境

    在IT领域,加密和解密技术是信息安全的重要组成部分,特别是在Java环境下,这些技术的应用非常广泛。本实验主要探讨了七种不同的加密算法:凯撒密码、维吉尼亚密码、RSA算法、SHA算法、DSA算法、LZW算法以及数字水印...

    Java非对称加密源码实例.7z

    Java非对称加密技术是一种基于数学难题的安全加密方法,它主要使用两个密钥:公钥和私钥。这种加密方式相比对称加密(如DES、AES)更为安全,因为公钥可以公开,而私钥必须保密。在Java中,非对称加密主要通过Java ...

    PGP加解密工具类

    PGP(Pretty Good Privacy)是一种广泛使用的数据加密和签名软件,它结合了公钥加密和对称加密技术,为用户提供了一种安全的数据保护方式。在本文中,我们将深入探讨PGP加解密工具类,包括PGP文件和文本的加密解密、...

    字符串加密

    除了编程实现,也有一些图形化工具可用于字符串加密,如Gpg4win(用于PGP加密)、7-Zip(支持AES-256加密的文件压缩工具)等。这些工具简化了加密过程,但同样需要用户了解如何安全地管理和分发密钥。 7. **安全性...

    BouncyCastleOpenGPG加解密实例.zip

    BouncyCastle是一个广泛使用的Java安全库,提供了对各种加密算法的支持,包括公开密钥加密标准OpenPGP。本实例着重介绍如何利用BouncyCastle库进行OpenPGP(Pretty Good Privacy)的加解密操作。 OpenPGP是一种用于...

    如何有效防止Java程序源码被人偷窥.doc

    另一种策略是使用像PGP或GPG这样的加密工具对整个应用程序进行加密。虽然这种方式要求用户在运行前先解密,但它的问题在于解密后的类文件暴露给了最终用户,从而失去了保护。 Java的ClassLoader机制提供了一种更...

    非对称加密传输文件相关技术理论浅析

    工具方面,有一些工具可以帮助简化非对称加密的操作,如GPG(GNU Privacy Guard),它是一个开放源代码的PGP(Pretty Good Privacy)实现,允许用户轻松地进行文件加密和签名。此外,HTTPS客户端和服务器如curl和...

    命令行文件管理

    例如,使用GPG(GNU Privacy Guard)可以对文件进行加密。首先,你需要安装GPG,然后使用`gpg --encrypt --recipient [收件人公钥ID] 文件名`来加密文件。解密时使用`gpg --decrypt 文件名.gpg`。在Windows上,可以...

    使用Java开发和信息安全相关的程序

    例如,通过引用S/MIME包,开发者可以轻松地完成对字符串或文章的加密和签名,而Open PGP包则使得与PGP/GPG的交互变得更加便捷。 要使用Bouncy Castle,首先需要在程序的初始化阶段添加其Provider,例如: ```java ...

    文件加密解密

    例如,Python中的`cryptography`库可以用于实现各种加密算法,或者可以使用开源工具如GPG(GNU Privacy Guard)进行文件加密。 标签“源码”暗示了可能包含有实际的编程代码示例,可能是用C++、Java、Python或其他...

    CrococryptFile:用于创建文件存档的加密工具

    Crococrypt文件 在Windows(XP-10)/ Linux / Mac上创建...基于GPG / OpenPGP密钥的AES-256加密 隐藏式(无头)基于密码的加密(AES-Twofish-256) 隐藏式(无头)基于密码的加密(AES-Twofish-256)填充为1MB的倍数,

    命令行文件管理器

    例如,使用`gpg -c file.txt`对`file.txt`进行加密,解密则用`gpg -d encrypted_file.gpg`。 四、压缩与解压 1. 压缩:`gzip`、`bzip2`和`tar`命令常用于压缩文件。`gzip file.txt`将`file.txt`压缩为`file.txt.gz`...

Global site tag (gtag.js) - Google Analytics