我尝试使用以下命令解密文件:
gpg --output file.txt --decrypt file.pgp
Run Code Online (Sandbox Code Playgroud)
文件已成功解密但我收到错误:
"gpg:无法检查签名:未找到公钥"
任何想法,为什么我得到这个错误?
我需要使用bouncycastle提供程序使用pgp加密流.我能找到的所有示例都是关于获取纯文本文件并加密,但是我没有文件,重要的是纯文本永远不会写入磁盘.
我见过的大多数方法都在使用
想要传入明文的PGPUtil.writeFileToLiteralData.我宁愿传递一个byte []或一个inputStream.
有人能指出我的一个例子
万一其他人偶然发现并想要完整的解决方案
package com.common.security.pgp;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import java.security.Security;
import java.util.Date;
import java.util.Iterator;
import org.bouncycastle.bcpg.ArmoredOutputStream;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.openpgp.PGPCompressedData;
import org.bouncycastle.openpgp.PGPCompressedDataGenerator;
import org.bouncycastle.openpgp.PGPEncryptedData;
import org.bouncycastle.openpgp.PGPEncryptedDataGenerator;
import org.bouncycastle.openpgp.PGPEncryptedDataList;
import org.bouncycastle.openpgp.PGPException;
import org.bouncycastle.openpgp.PGPLiteralData;
import org.bouncycastle.openpgp.PGPLiteralDataGenerator;
import org.bouncycastle.openpgp.PGPObjectFactory;
import org.bouncycastle.openpgp.PGPPrivateKey;
import org.bouncycastle.openpgp.PGPPublicKey;
import org.bouncycastle.openpgp.PGPPublicKeyEncryptedData;
import org.bouncycastle.openpgp.PGPPublicKeyRing;
import org.bouncycastle.openpgp.PGPPublicKeyRingCollection;
import org.bouncycastle.openpgp.PGPSecretKey;
import org.bouncycastle.openpgp.PGPSecretKeyRingCollection;
import org.bouncycastle.openpgp.PGPUtil;
/**
* …
Run Code Online (Sandbox Code Playgroud) 有没有办法用gpg签署git提交?标签(使用-s
而不是代码-a
)很容易,似乎提交的功能类似.
我想用JavaScript加密,用PHP解密,使用公钥加密.我一直在努力寻找可以实现这一目标的库,但我遇到了问题.
我目前正在查看openpgpjs,但我需要在所有浏览器中提供支持,甚至测试页面也只在列出的受支持浏览器(Google Chrome)上出现错误.
关于最终目标的说明:
TCP连接已受SSL保护.这一保护层的主要目的是防止有意或无意的网络服务器日志记录,崩溃转储等.
在PHP端,将生成临时私钥(它将在短时间后过期).调用者(在Javascript中)负责在新的公钥到期时要求它.私钥到期的原因是为了防止记录加密数据解密,以防存储私钥的服务器稍后被泄露.
服务器受损的情况:有人获取除数据库服务器之外的所有计算机的备份(并且由于防火墙而无法访问数据库,即使他找到了用户和密码).由于加密记录数据的私钥不再存在,攻击者无法做到.
我正在用Python创建一个程序,通过安装程序分发给Windows用户.
该程序需要能够每天下载一个使用用户公钥加密的文件,然后对其进行解密.
所以我需要找到一个Python库,让我生成公共和私有PGP密钥,并解密用公钥加密的文件.
这是pyCrypto会做的事情(文档是模糊的)?还有其他纯Python库吗?如何使用任何语言的独立命令行工具?
到目前为止我所看到的只是GNUPG,但是在Windows上安装它会对注册表产生影响,并且无处不在地抛出dll,然后我不得不担心用户是否已经安装了这个,如何备份他们现有的密钥环等等.我宁愿只需要一个python库或命令行工具,并自己管理密钥.
更新:pyME可能会工作,但它似乎与我必须使用的Python 2.4不兼容.
我想使用PGP密钥解密文件.
我已下载PGP密钥安装程序并已安装.使用它我创建了一个文本文件并使用PGP密钥加密了文本文件.
然后我得到了一个加密的.pgp扩展文件.现在我想使用PGP使用Java代码解密同一个文件.
在Java中,如何解密已使用PGP密钥加密的文本文件?
我想使用PGP加密来加密CSV文件,我通过PHP脚本生成,然后通过电子邮件将该文件发送到客户端.客户端会给我加密密钥,我需要将其用于加密文件.
我用Google搜索了PGP并发现它是非常好的隐私,我也找到了OpenPGP http://www.openpgp.org/和GnuPG http://www.gnupg.org/这两种类型的PGP是什么?我应该使用哪一个?
如何使用PHP中的PGP使用我的客户端将提供的密钥加密文件?
我第一次听到这个术语,任何人都可以帮助理解这一点并在PHP中实现它.
我读过这篇文章很好地解释了如何在osx上设置pgp,但我打算使用生成的密钥来签署git提交,所以我想我需要将密钥传输到我的其他计算机.它是否正确?如果是这样,我该如何转移钥匙?
我想在Javascript中做一些客户端PGP加密.我发现一些GPL库散布在网络上,但由于显而易见的原因,由于许可问题,我无法使用该代码.
我正在寻找一些类似BSD的许可证库,可以完成同样的事情.有人知道我可以使用的图书馆吗?
我已经研究了一些关于如何实现我在问题中所说的内容并发现了几个API,但大多数API看起来非常复杂,因为我只是在这方面的一个noobie我只想要一个简单的方法,如:
public String Encrypt(String message, PublicKey publicKey)
Run Code Online (Sandbox Code Playgroud)
不知道是否可以这样做?如果没有那么请有人开导我另一种方式来实现这个:)
谢谢.
更新:
到目前为止,我只看到OpenPGP加密的所有库都需要公钥和私钥才能进行加密,而我只想用公钥加密(因为我没有私钥来使用它) !
pgp ×10
encryption ×5
gnupg ×5
java ×2
javascript ×2
php ×2
public-key ×2
bouncycastle ×1
browser ×1
c# ×1
cmd ×1
git ×1
git-sign ×1
openpgp ×1
python ×1
rsa ×1