java - PGP 使用什么算法来使用密码加密私钥?

标签 java bouncycastle pgp private-key

PGPKeyRingGenerator 构造函数采用密码来加密私钥。它使用什么算法来执行此操作?它有一个名为 encAlgorithm 的字段,但我找不到任何解释这些算法是什么的文档。

最佳答案

默认情况下,PGP 使用 IDEA ( Refer this )。

其他算法可以在encAlgorithm中定义,OpenPGP支持以下算法,

public interface SymmetricKeyAlgorithmTags
{
    public static final int NULL = 0;        // Plaintext or unencrypted data
    public static final int IDEA = 1;        // IDEA [IDEA]
    public static final int TRIPLE_DES = 2;  // Triple-DES (DES-EDE, as per spec -168 bit key derived from 192)
    public static final int CAST5 = 3;       // CAST5 (128 bit key, as per RFC 2144)
    public static final int BLOWFISH = 4;    // Blowfish (128 bit key, 16 rounds) [BLOWFISH]
    public static final int SAFER = 5;       // SAFER-SK128 (13 rounds) [SAFER]
    public static final int DES = 6;         // Reserved for DES/SK
    public static final int AES_128 = 7;     // Reserved for AES with 128-bit key
    public static final int AES_192 = 8;     // Reserved for AES with 192-bit key
    public static final int AES_256 = 9;     // Reserved for AES with 256-bit key
    public static final int TWOFISH = 10;    // Reserved for Twofish
}

它们都使用CFB模式,没有填充。

关于java - PGP 使用什么算法来使用密码加密私钥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321174/

相关文章:

java - 如何使用 BouncyCaSTLe 读取密码为空的 PKCS8 文件

java - 通过解析 PKCS10CertificationRequest 读取请求的扩展

php - 如何使用公钥/私钥加密 PHP 中的数据?

java - 将 spark 数据帧写入 Parquet 格式时出现内存不足错误

java - 扫描仪在尝试获取下一个时抛出空指针

java - 如何在 java 中使用 bouncycaSTLe 将 PrivateKeyUsage 扩展添加到证书?

kubernetes - 安装 kubernetes 时未找到有效的 GPG

node.js - 如何在 NodeJS 中使用 ASC 文件和用户名/密码通过 SFTP 上传文件

java - Thymeleaf 中的 Spring 安全表达式

java - 进度对话框阻塞