标签: rsa

为什么RSA加密和解密的时间取决于密钥大小而不是输入长度?

我读了一些关于 RSA 加密的白皮书。我找到这个说法。但我不明白为什么?声明是RSA加密和解密的时间取决于密钥大小,但不取决于输入数据的大小和内容,如果这个声明正确意味着我们加密1000字节,同时加密和解密10000字节?

encryption cryptography rsa

0
推荐指数
1
解决办法
1759
查看次数

为什么我无法连接到 GitLab SSH 服务器?

为什么我无法连接到 GitLab SSH 服务器?我的本地设置有问题,但我找不到问题所在。

$ ssh -Tv -p 9292 gitlab@svn.faktab.net
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to svn.faktab.net [xxx.xx.xxx.xxx] port 9292.
debug1: Connection established.
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/bls/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/bls/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /c/Users/bls/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file …
Run Code Online (Sandbox Code Playgroud)

git ssh rsa

0
推荐指数
1
解决办法
4387
查看次数

golang,我可以使用 rsa 密钥创建 X509KeyPair 吗?

我正在尝试按照此博客Secure gRPC with TLS/SSL上的说明创建与相互 tls 的 gRPC 连接,但我不想创建证书并将其保存到磁盘上的文件中,我希望服务本身创建它的密钥,那么证书颁发机构的密钥将被带到其他地方(我计划使用 google pki 作为 ca)。

到目前为止我所做的我可以使用 rsa 创建私钥/公钥对,然后按照Golang 的一些代码将公钥编码为 pem 密钥:生成 DSA 私钥、公钥和 PEM 文件示例现在我知道如何创建使用LoadX509KeyPair 的证书。我不知道从哪里获取第二个参数的值,它需要以字节为单位的 keyPemBlock,但 RSA 私钥不在字节上。

我想问一下,如果可能的话,是否有更好的方法来使用 RSA 创建证书?

如果我们可以使用 RSA 创建证书;使用我上面的不完整解决方案,我可以在哪里获得tls.LoadX509KeyPair?的第二个参数的值。

谢谢

rsa go pem x509certificate grpc

0
推荐指数
1
解决办法
1771
查看次数

RSAParameters 计算私有参数

我正在尝试RSAParameters在 .NET Standard 上计算结构的私有参数。我做了一个单元测试来测试我的计算:

[TestMethod]
public void DQDPTest()
{
    RSA rsa = RSA.Create();
    RSAParameters rsaParams = rsa.ExportParameters(true);

    BigInteger p = new BigInteger(rsaParams.P.Reverse().ToArray());
    BigInteger q = new BigInteger(rsaParams.Q.Reverse().ToArray());
    BigInteger d = new BigInteger(rsaParams.D.Reverse().ToArray());
    BigInteger dq = new BigInteger(rsaParams.DQ.Reverse().ToArray());
    BigInteger dp = new BigInteger(rsaParams.DP.Reverse().ToArray());
    Assert.AreEqual(dq, d % (q - 1));
    Assert.AreEqual(dp, d % (p - 1));
}
Run Code Online (Sandbox Code Playgroud)

但是,断言始终失败,我无法弄清楚原因,因为DQ并且DP应该包含这些值。为什么会这样?

我有一个类似的计算方法InverseQ,但这也不起作用:

[TestMethod]
public void ModInverseTest()
{
    RSA rsa = RSA.Create();
    RSAParameters rsaParams = rsa.ExportParameters(true);

    BigInteger p …
Run Code Online (Sandbox Code Playgroud)

c# rsa .net-standard

0
推荐指数
1
解决办法
302
查看次数

如何在ios中快速生成公钥/私钥对,如下所示

这就是我生成公钥/私钥对的方式

var statusCode: OSStatus
var publicKey: SecKey?
var privateKey: SecKey?

let publicKeyAttribute: [NSObject : NSObject] = [kSecAttrIsPermanent: true as NSObject, kSecAttrApplicationTag: "publictag".data(using: String.Encoding.utf8)! as NSObject]

let privateKeyAtrribute: [NSObject: NSObject] = [kSecAttrIsPermanent: true as NSObject, kSecAttrApplicationTag: "privatetag".data(using: String.Encoding.utf8)! as NSObject]

var keyPairAttr = [NSObject: Any]()
keyPairAttr[kSecAttrType] = kSecAttrKeyTypeRSA
keyPairAttr[kSecAttrKeySizeInBits] = 2048
keyPairAttr[kSecReturnData] = true
keyPairAttr[kSecPublicKeyAttrs] = publicKeyAttribute
keyPairAttr[kSecPrivateKeyAttrs] = privateKeyAtrribute


statusCode = SecKeyGeneratePair(keyPairAttr as CFDictionary, &publicKey, &privateKey)
Run Code Online (Sandbox Code Playgroud)

这会生成如下所示的密钥对,

公钥:

Optional(<SecKeyRef algorithm id: 1, key type: RSAPublicKey, version: 4, block size: 2048 …
Run Code Online (Sandbox Code Playgroud)

rsa pem der ios swift

0
推荐指数
1
解决办法
2719
查看次数

1024 位 RSA 密钥对的 DER 编码的 RSAPublicKey (PKCS #1) 长度是否一致?

我使用 openssl 命令创建了多个 1024 位 DER 编码的 RSAPublicKeys (PKCS #1):

openssl genrsa 1024 | openssl rsa -outform DER -RSAPublicKey_out -out pubkey.der
Run Code Online (Sandbox Code Playgroud)

到目前为止,每个这样创建的公钥文件正好有 140 个字节。以这种格式编码的 1024 位 RSA 公钥是否始终为 140 字节,或者该大小是否可以变化?

我了解到 DER 编码私钥的大小可能会有所不同。

openssl rsa asn.1 pkcs#1

0
推荐指数
1
解决办法
2354
查看次数

带有证书、私钥和密码短语的 TLS

我正在与为我提供证书的银行服务器集成。我pem用证书创建了一个文件,所以现在我有证书、pem文件中的私钥和密钥的密码短语。

新生成的文件pem正在使用 OpenSSL 命令建立 SSL 连接,如下所示:

openssl s_client -connect host:port -key key.pem -cert cert.pem
Run Code Online (Sandbox Code Playgroud)

此命令请求密码短语,我可以连接。但是我无法使用我的 Go 代码连接到相同的内容,如下所示:

package main

import (
    "crypto/tls"
    "crypto/x509"
    "fmt"
    "net/http"
)

func main() {
    caCert := []byte(`certs pem data`) // this contains both private key and certificates
    caCertPool := x509.NewCertPool()
    caCertPool.AppendCertsFromPEM(caCert)

    // Setup HTTPS client
    tlsConfig := &tls.Config{
        RootCAs:            caCertPool,
        InsecureSkipVerify: true,
    }
    tlsConfig.BuildNameToCertificate()
    transport := &http.Transport{TLSClientConfig: tlsConfig}
    client := &http.Client{Transport: transport}

    httpRequest, _ := http.NewRequest("GET", "https://test.com", nil)
    resp, …
Run Code Online (Sandbox Code Playgroud)

ssl openssl rsa go tls1.2

0
推荐指数
1
解决办法
2635
查看次数

使用 Azure Key Vault 的密钥加密和解密文本

我正在尝试使用 Azure Key Vault 中的密钥来加密和解密 Web API 的 cookie。

对于加密过程,我在该类中使用 RSA:

    public class SimpleRSA
    {
        private RSA _rsa;

        public SimpleRSA(RSA rsa)
        {
            _rsa = rsa;
        }

        public string EncryptAsync(string value)
        {
            var byteData = Encoding.Unicode.GetBytes(value);
            var encryptedText = _rsa.Encrypt(byteData, RSAEncryptionPadding.OaepSHA1);
            var encodedText = Convert.ToBase64String(encryptedText);
            return encodedText;
        }


        public string DecryptAsync(string encryptedText)
        {
            var encryptedBytes = Convert.FromBase64String(encryptedText);
            var decryptionResult = _rsa.Decrypt(encryptedBytes, RSAEncryptionPadding.OaepSHA1);
            var decryptedText = Encoding.Unicode.GetString(decryptionResult);
            return decryptedText;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我使用该代码从密钥中获取 RSA:

  public RSA GetRSA(string appId, string appSecret)
        {
            AuthenticationCallback callback …
Run Code Online (Sandbox Code Playgroud)

c# encryption rsa azure azure-keyvault

0
推荐指数
2
解决办法
9041
查看次数

如何使用rsa privatekey解密数据

我正在使用JAVA我的朋友使用SYMBIAN

我和我的朋友有相同的rsa模数.如果我使用公钥加密数据,那么我的朋友能够解密相同的数据.但如果我的朋友使用公钥加密数据,那么我无法解密数据.我收到一个错误,因为"数据必须从零开始"

public static byte[] encrypt(byte[] encrptdByte) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException {
    byte[] encryptionByte = null;
    Cipher cipher = Cipher.getInstance("RSA");
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    encryptionByte = cipher.doFinal(encrptdByte);
    return encryptionByte;
}

public static void decrypt(byte[] encrptdByte) throws NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException {
    byte[] encryptionByte = null;
    Cipher cipher = Cipher.getInstance("RSA");
    cipher.init(Cipher.DECRYPT_MODE, publicKey);
    encryptionByte = cipher.doFinal(encrptdByte);

    System.out.println("Recovered String     :::  " + new String(encryptionByte));
}
Run Code Online (Sandbox Code Playgroud)

谢谢Sunil

java encryption rsa

-1
推荐指数
1
解决办法
8567
查看次数

使用openssl在stdout RSA加密文本上打印

我正在使用这部分代码

char encrypted_text[1024];
RSA_public_encrypt(sizeof(message), message, encrypted_text, rsa, RSA_PKCS1_OAEP_PADDING);
printf("encrypted text: %s\n", encrypted_text);
Run Code Online (Sandbox Code Playgroud)

而optput是这样的:

v0 뷾s E Z N\ 6~ : & / 〜ͯ L d Ǡ E [ h U.vH2F1Qb^) g ,a Ҩ xvU| > ˢ=W ő \ g

有可能消除 符号??

c unix openssl rsa

-1
推荐指数
1
解决办法
668
查看次数

标签 统计

rsa ×10

encryption ×3

openssl ×3

c# ×2

go ×2

pem ×2

.net-standard ×1

asn.1 ×1

azure ×1

azure-keyvault ×1

c ×1

cryptography ×1

der ×1

git ×1

grpc ×1

ios ×1

java ×1

pkcs#1 ×1

ssh ×1

ssl ×1

swift ×1

tls1.2 ×1

unix ×1

x509certificate ×1