首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序那些事

    密码学系列之:PEM和PKCS7,PKCS8,PKCS12

    它和常用的证书格式PKCS7和PKCS12有什么关系呢?一起来看看吧。 如果以PEM格式进行存储,那么文件的开头和结尾分别是:‑‑‑‑‑BEGIN PKCS7‑‑‑‑‑‑‑‑‑‑END PKCS7‑‑‑‑‑在windows中PKCS7通常以.p7b结尾。 PKCS12PKCS12也是Public-Key Cryptography Standards系列的一员,PKCS12可以看做是PKCS7的扩展,在PKCS12中可以存储证书,私钥或者CRL。 和PKCS7相比,PKCS12可以额外存储私钥。PKCS12的文件是以.p12 或者 .pfx结尾的。在JDK9中,PKCS12是默认的密钥存储格式。 PKCS12的格式和PEM相比会复杂的多,在需要的时候,我们可以使用OPENSSL将PKCS12格式转换成为PEM格式:openssl pkcs12 -nocerts -nodes -in cert.p12

    4.8K10编辑于 2022-08-04
  • 来自专栏Go学习

    PKCS#12

    PKCS12文件的扩展名通常为 .p12 或 .pfx 。PKCS12 主要有以下几个用途:跨平台传输:PKCS#12文件可以用于在不同平台和应用之间安全地传输证书和私钥。 证书导入和导出:许多应用和系统支持从PKCS#12文件导入和导出证书和私钥。因此常用于: 证书颁发机构(CA):CA通常使用PKCS12格式来分发证书和私钥给最终用户或服务器。 PKCS12证书结构PKCS12(Public-Key Cryptography Standards #12)是一种常用于存储和传输加密私钥和证书的文件格式。其证书结构复杂且具有高度的安全性。 以下是PKCS12文件中证书结构的详细介绍:2.1 基本结构PKCS12文件是一个容器格式,主要由以下几个部分组成:认证安全对象(Authenticated Safe):包含多个安全数据容器,每个容器称为一个 示例在Go语言中生成PKCS12证书通常涉及以下几个步骤:生成私钥和公钥对创建证书模板签署证书将私钥和证书打包成PKCS12文件我们可以使用Go的标准库和第三方库来完成这些任务。

    1.5K20编辑于 2024-06-30
  • 来自专栏全栈程序员必看

    PKCS11接口解析「建议收藏」

    pkcs密码中间件位于上层应用和底层安全设备之间,应用基于 PKCS#11 标准接口开发各类应用程序。主要包括2个库 主API库: 提供给应用的PKCS11接口。 表 pkcs11函数接口 种类 函数 描述 通用l C_Initialize 初始化 Cryptoki 目的函数 C_Finalize 清除各种Cryptoki相关资源 C_GetInfo 获得关于Cryptoki

    3K10编辑于 2022-09-01
  • 来自专栏运维开发王义杰

    安全:深入理解数字证书中的PKCS#1与PKCS#8标准

    引言 在数字证书和加密技术领域,我们经常会听到PKCS#1和PKCS#8这两个术语。这两个标准在数字证书的生成、管理及应用中扮演着关键角色。 PKCS#1 介绍 PKCS#1,即“公钥密码学标准 #1”,是由RSA Laboratories发布的一系列涉及RSA加密的标准之一。 PKCS#8 介绍 PKCS#8,“公钥密码学标准 #8”,定义了私钥信息的语法,特别是加密私钥的标准格式。 主要特点 私钥封装:PKCS#8提供了一种封装私钥的方法,这包括加密保护私钥。 PKCS#1 与 PKCS#8 的区别 虽然PKCS#1和PKCS#8都是PKCS系列标凈的一部分,但它们主要关注的领域有所不同。 比如,在生成RSA密钥对时,我们需要遵循PKCS#1的规范。而在需要存储或传输私钥时,PKCS#8的标准就显得尤为关键,它能确保私钥的安全性。

    3.2K11编辑于 2024-02-26
  • 来自专栏毛毛v5

    C# AES CBC PKCS7

    rDel.IV = key0; rDel.Mode = CipherMode.CBC; rDel.Padding = PaddingMode.PKCS7 rDel.IV = key0; rDel.Mode = CipherMode.CBC; rDel.Padding = PaddingMode.PKCS7

    1K30编辑于 2021-12-16
  • 来自专栏晓晨的专栏

    .NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接

    众所周知在.NET下的RSA类所生成的密钥为Xml格式,而其他语言比如java一般使用pkcs8格式的密钥,JavaScript一般使用pkcs1格式。 ,支持xml,pkcs1,pkcs8三种密钥格式,支持这三种格式的密钥相互转换。 它支持这三种格式的密钥转换,即:xml,pkcs1,pkcs8。 格式化Pkcs1格式私钥:RsaPemFormatHelper.Pkcs1PrivateKeyFormat() 删除Pkcs1格式私钥格式:RsaPemFormatHelper.Pkcs1PrivateKeyFormatRemove () 格式化Pkcs8格式私钥:RsaPemFormatHelper.Pkcs8PrivateKeyFormat() 删除Pkcs8格式的私钥格式:RsaPemFormatHelper.Pkcs8PrivateKeyFormatRemove

    2.1K20发布于 2018-06-22
  • 来自专栏爬虫逆向案例

    IDEA报错 sun.security.pkcs 找不到

    在编译器的 Settings -> Build,Execution ->Compiler-> Java Compiler 中禁用:

    1.7K30编辑于 2022-01-11
  • 来自专栏颇忒脱的技术博客

    X.509、PKCS文件格式介绍

    PKCS一共有15个标准编号从1到15,这里只挑讲PKCS #1、PKCS #8、PKCS #12。 openssl genrsa -out private-key.p1.pem 2048 转换 PKCS #1 -> Unencrypted PKCS #8 openssl pkcs8 -topk8 - in private-key.p1.pem -out private-key.p8.pem -nocrypt PKCS #1 -> Encrypted PKCS #8 openssl pkcs8 -topk8 PKCS #8 -> PKCS #1 openssl rsa -in private-key.p8.pem -out private-key.p1.pem 如果这个PKCS #8是加密的,那么你得输入密码 Public Key操作命令 从PKCS #1/#8提取 提取指的是从Private Key中提取Public Key,openssl rsa同时支持PKCS #1和PKCS #8的RSA Private

    2.8K10发布于 2019-05-13
  • 来自专栏Eureka的技术时光轴

    RSA私钥文件(PEM-PKCS#1)解析 转

    PKCS#1 RSA算法标准中定义RSA私钥语法 RSAPrivateKey ::= SEQUENCE { version Version, //版本 modulus INTEGER, //

    2.8K40发布于 2019-11-24
  • 来自专栏小灰灰

    Java实现AES ECP PKCS5Padding加解密工具类

    Java 实现一个AES/ECB/PKCS5Padding 加解密算法工具类 加密算法: AES 模式: ECB 补码方式: PKCS5Padding 1. /** * 算法/模式/补码方式 */ private static final String DEFAULT_CIPHER_ALGORITHM = "AES/ECB/PKCS5Padding

    1.7K40发布于 2020-05-09
  • 来自专栏Owen's World

    AES-128-CBC-Pkcs7Padding加密PHP实例

    大概 AES-128-CBC-Pkcs7Padding加密PHP实例: 编码base64,模式cbc,填充Pkcs7Padding,位数128位, 输入格式base64,输出格式string,字符集utf public function getiv(): string { return $this->iv; } /** * 加密 * AES/CBC/PKCS7Padding * AES加密:(https://www.mklab.cn/utils/aes) * 编码base64,模式CBC,填充Pkcs7Padding,位数128位,输入格式base64

    2K10编辑于 2022-12-07
  • 来自专栏Owen's World

    AES-128-CBC-Pkcs7Padding加密PHP实例

    大概 AES-128-CBC-Pkcs7Padding加密PHP实例: (https://www.mklab.cn/utils/aes) 编码base64,模式cbc,填充Pkcs7Padding,位数 public function getiv(): string { return $this->iv; } /** * 加密 * AES/CBC/PKCS7Padding * AES加密:(https://www.mklab.cn/utils/aes) * 编码base64,模式CBC,填充Pkcs7Padding,位数128位,输入格式base64

    2K50编辑于 2022-06-27
  • 来自专栏Owen's World

    AES-128-CBC-Pkcs7Padding加密PHP实例

    图片 大概 AES-128-CBC-Pkcs7Padding加密PHP实例: 编码base64,模式cbc,填充Pkcs7Padding,位数128位, 输入格式base64,输出格式string,字符集 public function getiv(): string { return $this->iv; } /** * 加密 * AES/CBC/PKCS7Padding * AES加密:(https://www.mklab.cn/utils/aes) * 编码base64,模式CBC,填充Pkcs7Padding,位数128位,输入格式base64

    1.9K80编辑于 2022-11-30
  • 来自专栏全栈程序员必看

    怎么把已有的RSA公私钥转换成PKCS8格式

    (以Ubuntu为例) $ openssl 进入OpenSSL程序 OpenSSL> genrsa -out rsa_private_key.pem 1024 生成私钥 OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt Java开发者需要将私钥转换成PKCS8格式 OpenSSL> rsa 打开rsa_private_key.pem文件,如上图所示,红框中的内容是生产的原始私钥,把它替换成我们所想转的RSA私钥, 4,把RSA私钥转换成PKCS8格式 输入命令: pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt ,并回车当前界面中会直接显示出生成结果,这个结果就是PKCS8格式的私钥,如下图: 右键点击openssl窗口上边边缘,选择编辑→标记,选中要复制的文字(如上图), 此时继续右键点击openssl窗口上边边缘,选择编辑→复制, 就把PKCS8格式的私钥复制出来了.到此就结束了

    3.1K40编辑于 2022-06-30
  • 来自专栏程序技术知识

    PHP AES(运算模式 ECB,填充方式PKCS7) 加密解密

    $size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_ECB); $input = self::pkcs5Pad $data = base64_encode($data); return $data; } /** * [pkcs5Pad * @param [type] $blocksize * @return [type] */ private static function pkcs5Pad

    2.4K20编辑于 2022-02-25
  • 来自专栏JAVA乐园

    Java不同类型密钥库之PKCS12和JCEKS

    摘要:密钥库是一个存放加密密钥和证书的存储设施,它们经常用于SSL通信来标明服务器和客户机的身份,本文所列的为Java密钥库中的PKCS12和JCEKS类型。 PKCS12是公钥加密标准,它规定了可包含所有私钥、公钥和证书。 注意,PKCS12的密钥库保护密码同时也用于保护Key。 创建PKCS12密钥库 在把一个条目存入PKCS12之前必须先加载密钥库,这意味着我们必须首先创建一个密钥库。 简单创建一个PKCS12密钥库的方式如下: try{ KeyStore keyStore = KeyStore.getInstance("PKCS12"); keyStore.load( 导入导出密钥和证书 PKCS12密钥库可以用于导入导出密钥和证书,下面的代码演示了从PKCS12导出一个私钥并导入到JKS密钥库中: try{ KeyStore keyStore = KeyStore.getInstance

    2.5K20编辑于 2022-06-30
  • 来自专栏FreeBuf

    pax:一款针对PKCS7 Padding Oracle攻击的安全研究工具

    关于pax pax是一款针对PKCS7 Padding Oracle攻击的强大安全研究工具,在该工具的帮助下,广大研究人员可以更好地学习、理解和利用Padding Oracle漏洞,并设计出更完善的漏洞检测方案或安全解决方案 本工具针对的“填充”是PKCS #7规则,简单地说,便是根据最后一个数据块所缺少的长度来选择填充的内容。

    75720编辑于 2022-11-14
  • 来自专栏code人生

    PKCS#11:密码设备与应用程序的密码学接口

    PKCS#11的功能 PKCS#11的主要功能包括: 1.密码设备初始化和终止:PKCS#11定义了C_Initialize和C_Finalize函数,用于初始化和终止PKCS#11库和密码设备。 这些函数构成了PKCS#11的函数集,通常由应用程序调用以访问密码设备的功能。以下是一些常见的PKCS#11函数及其功能: 1.C_Initialize:这个函数用于初始化PKCS#11库和密码设备。 PKCS#11的用途 PKCS#11在各种应用领域中发挥着关键作用: •安全通信:PKCS#11用于加密和解密通信数据,以确保数据的机密性和完整性。 PKCS#11的实现 PKCS#11已经有多个不同供应商实现了。常见的PKCS#11实现包括: •OpenSC:一个开源的PKCS#11实现,支持多种密码设备和智能卡。 •PKCS#11 for OpenSSL:此实现与OpenSSL库集成,为应用程序提供PKCS#11接口。•SoftHSM:一个软件HSM模拟器,用于测试和开发PKCS#11应用程序。

    1.4K30编辑于 2023-10-19
  • 来自专栏code人生

    PKCS#11:密码设备与应用程序的密码学接口

    PKCS#11的功能PKCS#11的主要功能包括:密码设备初始化和终止:PKCS#11定义了C_Initialize和C_Finalize函数,用于初始化和终止PKCS#11库和密码设备。 这些函数构成了PKCS#11的函数集,通常由应用程序调用以访问密码设备的功能。以下是一些常见的PKCS#11函数及其功能:C_Initialize:这个函数用于初始化PKCS#11库和密码设备。 PKCS#11的用途PKCS#11在各种应用领域中发挥着关键作用:安全通信:PKCS#11用于加密和解密通信数据,以确保数据的机密性和完整性。它支持安全套接字层(SSL)和传输层安全性(TLS)协议。 PKCS#11的实现PKCS#11已经有多个不同供应商实现了。常见的PKCS#11实现包括:OpenSC:一个开源的PKCS#11实现,支持多种密码设备和智能卡。 PKCS#11 for OpenSSL:此实现与OpenSSL库集成,为应用程序提供PKCS#11接口。SoftHSM:一个软件HSM模拟器,用于测试和开发PKCS#11应用程序。

    92030编辑于 2023-10-14
  • 来自专栏用户1337634的专栏

    如何从PKCS12证书中解析私钥、公钥和证书序列号

    微信支付对接用到的商户API证书是PKCS12格式,常见后缀名是.p12。 parse(InputStream is, String passwd) throws Exception { KeyStore ks = KeyStore.getInstance("PKCS12

    4.1K32发布于 2021-06-01
领券