所以我假设我做错了什么,我的AES和RSA加密和解密类是不安全的。我计划在一个更大的项目中使用它们,并希望确保我没有首先完全屏蔽它们。我的问题如下:
如果有的话,是什么使这两个类不安全呢?
如果有的话,我的代码会变得更整洁/更好吗?
我有什么不想问的
AES:
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
/**
* Created by Gabriel Wittes on 3/15/2016.
* A class to encrypt and de
我在服务器上使用phpseclib加密数据
$rsa->loadKey($encryptkey);
$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$ciphertext = $rsa->encrypt($str);
并在我的Java应用程序中接收它。数据为384字节(3*128)。
在Java中,我试图解密它(它们的密钥已经被正确分发),但我得到了这个异常:
javax.crypto.IllegalBlockSizeException: Data must not be longer than 128 bytes
下
当我使用以下代码创建公钥/私钥时:
// Create the CspParameters object and set the key container
// name used to store the RSA key pair.
CspParameters cp = new CspParameters();
cp.KeyContainerName = ContainerName;
// Create a new instance of RSACryptoServiceProvider that accesses
// th
我正在尝试设置一个简单的服务器端RSA加密的一小块信息,这是解密在客户端。作为概念证明,我编写了几行代码来确保可以从xml加载公钥和私钥。然而,我正在努力让最简单的东西也能在我的机器上运行:
byte[] bytes = Encoding.UTF8.GetBytes("Some text");
bool fOAEP = true;
// seeding a public and private key
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
var publicKey =
当显式地将标识文件指定为ssh时:
ssh -i ./id_rsa ...
我在ssh调试跟踪中有以下几行:
debug1: Offering public key: ./id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
它是否意味着ssh生成的id_rsa包含公共RSA指数?id_rsa格式似乎相当明确,它包含私钥和它的“开始私钥”块,所以“提供公钥”必须意味着“向服务器发送公钥”。
编辑:
为了澄清这一点,我想知道在“提供公钥”的背后到底发生了什么。如果客户端持有多个密钥,则
我想用RSA加密和解密文件。加密效果很好。但我解密的时候会出错。
错误是键不存在。
以下是错误:
public byte[] RSA_Encrypt(byte[] bytesToBeEncrypted, byte[] passwordBytes, RSAParameters RSAKeyInfo)
{
//initialze the byte arrays to the public key information.
byte[] PublicKey = {214,46,220,83,160,73,40,39,201,155,19,202,3,11,191,178,56,
我是加密新手。我需要实现非对称加密算法,我认为它使用私钥/公钥。我开始使用RSACryptoServiceProvider的一个示例。对于需要加密的小数据,这是可以的。但是当在相对较大的数据"2行“上使用它时,我得到了异常CryptographicException”错误的长度“!
//Create a new instance of RSACryptoServiceProvider.
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
//Import the RSA Key inf
我正在尝试设置RSA加密,这样我就可以创建一个简单的库供自己将来使用,而我无法让这个简单的代码工作。以下是源代码:
package rsa.testing;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import javax.crypto.Cipher;
public class AloneTest
{
public static void doTest()
{
try
{
KeyPairGenerator gen = K
我有RSA解密码的这一部分:
// Turn the encoded key into a real RSA private key.
// Private keys are encoded in PKCS#8.
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(keyBytes);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(keySpec);
//
在使用RSACryptoServiceProvider.Decrypt解密文本时,我得到了以下错误:
解码OAEP填充时发生错误。
这是我的密码:
CspParameters cspParam = new CspParameters();
cspParam = new CspParameters();
cspParam.Flags = CspProviderFlags.UseMachineKeyStore;
clsCertificates cc = new clsCertificates();
string a = "";
cc.OpenStoreIE(ref