N阶二进制
专注分享IT技术,【openssl/Qt/opencv/C++】,学习资料,工作经验,有趣好玩,靠谱!
网络安全,信息安全。
展开
-
openssl命令之口令生成工具
如果你希望使用自定义的盐值,可以直接在-salt在这个命令中,-1表示使用 MD5 算法,使用了自定义盐值mysalt。mypassword是你要加密的密码。这个命令将生成一个使用MD5算法和自定义盐值的密码哈希值。请注意,盐值越长越复杂,密码的安全性就越高。在实际应用中,建议使用随机生成的盐值,并确保盐值的保密性。原创 2023-11-01 08:53:12 · 710 阅读 · 1 评论 -
linux+openssl命令之RSA加解密操作
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出。RSA是目前最广泛使用的公钥加密算法之一。它基于两个大素数的乘积的难解性问题,其中一个素数用作加密密钥,另一个素数用作解密密钥。原创 2023-11-05 07:00:00 · 3841 阅读 · 0 评论 -
openssl s_client工具详解
是 OpenSSL 工具中的一个命令,用于建立和测试 SSL/TLS 连接。它通常用于诊断和测试 SSL/TLS 服务的运行情况。openssl 版本3.0X。原创 2023-11-04 07:00:00 · 4061 阅读 · 1 评论 -
pkcs12、pkcs7、pkcs8详解
PKCS(Public Key Cryptography Standards)是一系列的密码学标准,由 RSA Security 公司制定。PKCS 定义了很多与公钥密码学相关的标准。原创 2023-12-06 07:00:00 · 4476 阅读 · 0 评论 -
OpenSSL ca证书命令操作详解
OpenSSL 的ca命令用于操作证书颁发机构(CA,Certificate Authority)的操作,包括签发、撤销和管理证书。以下是 OpenSSL 版本 3.0 中openssl ca命令的详细使用手册。请注意,由于文本长度限制,以下内容可能不包含所有参数的详细说明。你可以使用命令在终端中获取帮助信息。原创 2023-11-10 07:00:00 · 1908 阅读 · 0 评论 -
openssl命令数据摘要详解(SM3、sha256、MD5、dss1、mdc2、ripemd160)
SM3是由中国密码学家设计的密码哈希函数,是中国国家密码管理局(National Cryptographic Authority,简称:CNCA)颁布的国家密码算法标准。SM3属于密码杂凑函数家族,它可以计算任意长度的消息并生成固定长度(256比特,即32字节)的哈希值。SM3生成的哈希值长度为256比特(32字节),不管输入消息的长度如何,输出始终是固定的。SM3将输入数据划分为512比特(64字节)的分组,并对每个分组进行处理。原创 2023-10-27 07:00:00 · 3659 阅读 · 1 评论 -
CA证书格式详解
这两种格式是常见的,但还有其他格式,例如 DER(Distinguished Encoding Rules)格式。DER 是二进制编码的一种规范,通常使用扩展名。通常情况下,X.509 格式是更通用的格式,而PKCS#7 格式主要用于证书链的传递。选择使用哪种格式取决于你的使用场景和系统要求。文件可能包含 Base64 编码的块,这取决于具体的应用和要求。文件通常是二进制格式,但。原创 2023-12-08 07:00:00 · 1733 阅读 · 0 评论 -
OCSP检查数字证书状态详解
OCSP(Online Certificate Status Protocol)是一种用于检查数字证书状态的协议。它提供了一种实时查询证书状态的方式,以确定证书是否被吊销。原创 2023-12-09 14:22:18 · 2690 阅读 · 0 评论 -
自签名根证书、中间证书、服务器证书生成流程详解
在实际情况中,一些字段可能不是必需的,具体取决于你的使用场景和证书颁发机构(CA)的要求。至此,你已经生成了一个由中间证书签署的服务器证书。至此,你已经生成了一个由根证书签署的中间证书。在实际环境中,你可能还需要考虑中间证书的有效期、使用配置文件来指定证书信息等。在实际生产环境中,你可能需要更详细的信息,包括使用配置文件来指定证书信息,设置证书有效期限等。生成自签名的根证书(Root Certificate)的过程包括生成私钥、生成自签名的根证书。生成服务器证书的步骤与生成中间证书和根证书类似。原创 2023-12-01 07:00:00 · 4887 阅读 · 0 评论 -
openssl命令x509证书操作详解
OpenSSL 是一个开源的加密和解密工具,它提供了一系列命令来操作证书和密钥。以下是一些常用的 OpenSSL 命令,用于操作证书的详细解释:生成自签名证书是指在没有经过任何第三方证书颁发机构(CA,Certificate Authority)的认证下,由个人或组织自行创建和签名的数字证书。自签名证书可以用于安全通信,但在实际应用中,它们通常用于测试、开发和内部使用,而不是在公共网络中使用,因为它们没有受到可信任 CA 的验证,可能会引发安全问题。在使用自签名证书时,虽然可以加密通信,但客户端在连接时通常原创 2023-11-03 07:00:00 · 6998 阅读 · 0 评论 -
openssl的x509命令工具
当采用-text显示时,设置是否打印哪些内容,arg可用是:compatible、no_header、no_version、no_extensions和ext_parse等等,详细信息请参考x509命令的帮助文档。它可以显示证书信息、转换证书格式、签名证书请求以及改变证书的信任设置等。指定包含证书扩展项的文件名,如果没有,那么生成的证书将没有任何扩展项。删除证书所有的扩展项。显示证书持有者的摘要值,同-subject_hash。指定CA私钥文件格式,默认为PEM格式。指定输入文件的格式,默认为PEM格式。原创 2023-12-12 09:44:41 · 1007 阅读 · 0 评论 -
asn1格式详解
在ASN.1中,每种数据类型都有一个唯一的标识符,用于表示其类型和值。标签含义0x01BOOLEAN0x02INTEGER0x03BIT STRING0x040x05NULL0x060x0CUTF8String0x130x16IA5String0x17UTCTime0x180x30SEQUENCE0x31SET在ASN.1中,每个标签都对应着特定的数据类型,例如INTEGER、SEQUENCE等。原创 2023-11-30 07:00:00 · 1855 阅读 · 0 评论 -
openssl+sha256开发实例(C++)
SHA-256(Secure Hash Algorithm 256-bit)是一种哈希算法,属于 SHA-2(Secure Hash Algorithm 2)家族的一员。SHA-256 产生的哈希值是一个256位(32字节)的二进制数字,通常以64个十六进制字符的形式表示。SHA-256 被广泛认为是安全的哈希算法。对于理论上的攻击者来说,找到两个不同的输入产生相同的 SHA-256 哈希值(碰撞)的难度应该是极大的。SHA-256 生成的哈希值始终是256位,不论输入的长度如何。原创 2023-11-13 07:00:00 · 2303 阅读 · 0 评论 -
openssl+AES开发实例(linux)
AES(Advanced Encryption Standard)是一种对称密钥加密标准,它是一种对称加密算法,意味着相同的密钥用于加密和解密数据。AES 是 NIST(美国国家标准与技术研究院)于2001年发布的标准,用于替代原先的 DES(Data Encryption Standard)。AES 支持多种密钥长度,包括128位、192位和256位。密钥长度的不同影响了加密算法的安全性,通常更长的密钥长度意味着更高的安全性。AES 将数据分成固定大小的块(分组),每个块的大小是128位。原创 2023-11-15 07:00:00 · 1028 阅读 · 0 评论 -
linux openssl C++ md5开发实例
MD5(Message Digest Algorithm 5)是一种广泛用于产生消息摘要(哈希值)的算法。MD5 属于 MD(Message Digest)家族,设计用于生成128位(16字节)的哈希值。然而,由于其设计上的一些弱点,MD5 在一些安全应用中被认为不再安全。MD5 生成的哈希值始终是128位长,不论输入的长度如何。MD5 的计算速度相对较快,适用于对大量数据进行哈希的场景。MD5 是一个单向哈希函数,即从哈希值不能逆向推导出原始输入。原创 2023-11-14 07:00:00 · 827 阅读 · 0 评论 -
openssl+ RSA + linux 签名校验开发实例(C++)
下面是一个简单的示例,演示如何使用OpenSSL库在Linux环境下进行RSA签名和验证。在这个示例中,我们使用PEM格式的密钥对进行签名和验证。RSA签名校验是一种用于验证数字签名的过程,它确保签名是由拥有相应私钥的合法实体创建的。在实际应用中,为增加安全性,通常使用填充方案对消息进行填充。签名的结果可以被验证,以确保消息的完整性和真实性。理解以上理论知识有助于正确实现和使用RSA签名,并在应用中确保数据的安全性和完整性。RSA签名使用一对公钥和私钥。公钥用于验证签名,私钥用于创建签名。原创 2023-11-25 07:00:00 · 1385 阅读 · 0 评论 -
openssl研发之base64编解码实例
Base64编码是一种将二进制数据转换成ASCII字符的编码方式。它主要用于在文本协议中传输二进制数据,例如电子邮件的附件、XML文档、JSON数据等。Base64编码使用64个字符来表示二进制数据,通常使用字母(A-Z、a-z)、数字(0-9)和两个特殊字符(+ 和 /)。有时候,根据具体需求,可能会使用不同的字符集,比如URL安全的Base64编码会使用字符集,其中 “-” 和 “_” 替代了 “+” 和 “/”。Base64编码通常会导致编码后的数据长度略微增加。原创 2023-11-12 07:00:00 · 1734 阅读 · 0 评论 -
openssl + 3DES开发实例(linux)
3DES(Triple DES)是对称密钥加密算法,也被称为DESede(DES加强版)。它是对DES(Data Encryption Standard)的一种改进和加强,旨在提高 DES 的安全性。原创 2023-11-17 07:00:00 · 1159 阅读 · 0 评论 -
openssl+ ECC + linux 签名校验开发实例(C++)
ECC(Elliptic Curve Cryptography)是一种基于椭圆曲线数学结构的密码学技术。在ECC中,签名和验证过程使用的是数字签名算法,通常是ECDSA(Elliptic Curve Digital Signature Algorithm)。原创 2023-11-26 07:00:00 · 2133 阅读 · 0 评论 -
openssl研发随机数(random)生成(含源码)
请注意,虽然可以用于非安全目的,但如果你的应用程序需要密码学安全的随机数,你应该使用函数。并且,在生产环境中,你应该避免使用自定义的随机数种子,而依赖于系统提供的随机性源来确保更高的安全性。原创 2023-10-24 07:30:00 · 4148 阅读 · 2 评论 -
openssl源代码结构说明
OpenSSL 的源代码目录结构通常是一个典型的 C/C++ 项目结构,包含了各种源文件、头文件、构建脚本和文档等。原创 2023-10-23 09:01:18 · 1373 阅读 · 1 评论 -
openssl数据压缩
数据压缩是将原有数据通过某种压缩算法计算得到相对数据量小的过程。这种过程是可逆的,即能通过压缩后的数据恢复出原数据。数据压缩能够节省存储空间,减轻网络负载。在即需要加密又需要压缩的情况下,必须先压缩再加密,次序不能颠倒。因为加密后的数据是一个无序的数据,对它进行数据压缩,效果不大。SSL协议本身支持压缩算法,Openssl实现也支持压缩算法。它实现了一个空的压缩算法(crypto/comp/c_rle.c)并支持zlib压缩算法(crypto/comp/ c_zlib.c)。原创 2023-12-18 10:37:47 · 1134 阅读 · 0 评论 -
linux系统openssl的C++开发环境搭建
在Linux上进行OpenSSL的C++开发,你需要安装OpenSSL库并且在编译时链接该库。原创 2023-10-22 22:26:14 · 2348 阅读 · 1 评论 -
openssl+EVP详解
EVP 提供了通用的加密和解密函数,可以用于对称加密和非对称加密。选择加密算法,创建相应的EVP_CIPHER结构。初始化上下文。使用或初始化加密或解密操作。使用或处理数据。使用或完成加密或解密操作。由digest.c实现,实现过程中调用了对应摘要算法的回调函数。各个摘要算法提供了自己的EVP_MD静态结构,对应源码为m_xxx.c。原创 2023-11-29 09:02:23 · 4316 阅读 · 0 评论 -
openssl C++研发之pem格式处理详解
在OpenSSL的头文件中,和系列函数用于将特定类型的数据写入文件或BIO(内存缓冲区)中,其中XXXX代表不同的数据类型。这些函数的使用方式相似,通常接受一个文件指针(FILE*)或BIO指针(BIO*)作为参数,并将相应类型的数据写入到文件或BIO中。请根据需要选择合适的函数,并在使用时确保正确处理错误情况。原创 2023-11-21 07:00:00 · 2266 阅读 · 0 评论 -
openssl+sm3开发实例C++
SM3 是中国国家密码管理局(State Cryptography Administration,SCA)发布的一种密码散列函数,属于SHA-3 候选算法,也是我国的商用密码算法标准之一。SM3 是一种密码学安全性较高的密码散列函数,广泛应用于数字签名、消息认证码(MAC)等安全领域。原创 2023-10-25 07:00:00 · 1555 阅读 · 0 评论 -
openssl + ECDH + linux+开发详解(C++)
ECDH(Elliptic Curve Diffie-Hellman)是一种基于椭圆曲线密码学的密钥交换协议,用于在通信双方之间安全地协商共享密钥。ECDH是Diffie-Hellman密钥交换协议的一种变体,它利用椭圆曲线上的离散对数问题,提供了一种安全、高效的密钥协商方法。每个通信方都有一对密钥,包括一个公钥和一个私钥。公钥可以公开分享,而私钥则必须保密。通信双方通过互相交换各自的公钥,并使用对方的公钥和自己的私钥生成一个共享的对称密钥。原创 2023-11-27 07:00:00 · 2490 阅读 · 0 评论 -
openssl+ECC开发实例(含源码)
椭圆曲线加密(ECC,Elliptic Curve Cryptography)是一种非对称加密算法,它使用椭圆曲线上的点来进行加密、解密、数字签名和密钥交换。与传统的RSA算法相比,ECC提供了相当的安全性,但使用更短的密钥长度,从而提供更高的性能和较小的计算资源要求。原创 2023-12-05 10:42:08 · 3133 阅读 · 3 评论 -
openssl+ SM2 + linux 签名校验开发实例(C++)
SM2签名使用消息摘要算法对原始消息进行哈希,通常采用SM3算法。在校验过程中,验证者也需要使用相同的哈希算法对接收到的消息进行哈希。原创 2023-11-23 07:00:00 · 2211 阅读 · 0 评论 -
openssl+RSA开发实例(含源码)
RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,它是由Ron Rivest、Adi Shamir和Leonard Adleman于1977年共同提出的,是最早的一种用于公开密钥加密和数字签名的算法。RSA算法的安全性基于大数因子分解的难度,即大整数分解问题。原创 2023-10-28 08:43:05 · 1279 阅读 · 1 评论 -
CSR证书开发详解
CSR(Certificate Signing Request)证书签名请求是一种包含公钥及其相关信息的文件,用于向证书颁发机构(CA)请求数字证书。原创 2023-11-28 07:00:00 · 4886 阅读 · 0 评论 -
openssl+ SM2 + linux 签名开发实例(C++)
SM2签名使用消息摘要算法对原始消息进行哈希,通常采用SM3算法。原创 2023-11-22 07:00:00 · 2057 阅读 · 0 评论 -
openssl+SM2开发实例一(含源码)
是中国国家密码管理局(CNCA)颁布的椭圆曲线密码算法标准,属于非对称加密算法。它基于椭圆曲线离散对数问题,提供了安全可靠的数字签名、密钥交换和公钥加密等功能。SM2被设计为适用于各种场景下的密码学应用,包括数字证书、数据加密、数字签名、身份认证等。SM2是一种非对称加密算法,意味着它使用两个密钥:公钥和私钥。公钥用于加密数据和验证签名,而私钥用于解密数据和生成签名。SM2基于椭圆曲线密码学(Elliptic Curve Cryptography,ECC),使用椭圆曲线上的点运算来实现加密和签名操作。原创 2023-11-11 07:00:00 · 6259 阅读 · 11 评论 -
openssl+ DES开发实例(Linux)
DES(Data Encryption Standard)是一种对称密钥加密算法,最初由 IBM 设计,于1977年成为美国国家标准,用于加密非机密但敏感的政府数据。DES 使用相同的密钥进行数据的加密和解密,因此属于对称密钥加密算法。DES 使用56位的密钥,虽然实际上是64位,但其中有8位用于奇偶校验,因此实际参与加密计算的位数是56位。DES 将数据分成64位的块进行处理。每个64位的分组被视为一个数据块,并被输入到加密或解密算法中。原创 2023-11-16 07:00:00 · 1333 阅读 · 0 评论 -
openssl证书撤销列表(Certificate Revocation List,简称CRL)详解
证书撤销列表(Certificate Revocation List,简称CRL),是一种包含撤销的证书列表的签名数据结构。CRL是证书撤销状态的公布形式,CRL就像信用卡的黑名单,用于公布某些数字证书不再有效。CRL是一种离线的证书状态信息。它以一定的周期进行更新。CRL可以分为完全CRL和增量CRL。在完全CRL中包含了所有的被撤销证书信息,增量CRL由一系列的CRL来表明被撤销的证书信息,它每次发布的CRL是对前面发布CRL的增量扩充。原创 2023-12-11 13:32:40 · 3247 阅读 · 0 评论 -
全球200大常用密码排行榜2023 一密码多达450万人使用
弱密码通常指的是容易被猜测、破解或者使用暴力攻击等手段获取的密码。弱密码对于账户和系统的安全性构成威胁,因为攻击者可以更容易地获取对受保护资源的访问权。弱密码通常是由简单的字符组成,如纯数字、常见字母组合、出现在字典中的单词等。使用广泛流行的密码(如"password"、"123456"等)容易受到攻击,因为这些密码通常是攻击者首先尝试的。强密码是保护个人和组织安全的基本措施之一,因此用户和系统管理员应该始终致力于创建和维护安全的密码。使用具有预测性的密码,如生日、名字、用户名等,使得密码更容易被猜测。原创 2023-11-27 09:26:28 · 953 阅读 · 0 评论 -
传输层安全协议TLS——密码学概述
TLS 1.3 是一种用于保障网络通信安全的协议,它是 TLS(Transport Layer Security)协议的最新版本。TLS 1.3 通过提供更强大的安全性、更快的握手过程和更好的性能来改进先前的版本。TLS 1.3 的握手过程相较于 TLS 1.2 更为简化,减少了往返次数,提高了握手速度。在 TLS 1.3 中,只需要一轮往返(1-RTT)即可建立安全连接。TLS 1.3 引入了 0-RTT 握手模式,允许客户端在第一次连接时发送数据,从而加速连接建立。原创 2023-11-18 09:57:20 · 1406 阅读 · 0 评论 -
JWT开发详解
该标准定义了一种简洁的、自包含的方法,可以传递使用 JSON 对象进行编码的信息,这些信息可以被验证和信任。需要注意的是,由于 JWT 使用了 Base64 编码,虽然可以在客户端解码查看,但不能修改,因为修改后签名验证将失败。请注意,以上示例是一个简单的演示,实际项目中需要更复杂的用户认证和安全性措施。请注意,这只是一个高层次的概述,实际流程可能因应用场景而异,例如,在生成 JWT 时可能涉及更多的步骤,而在验证 JWT 时可能涉及更多的安全性检查。声明是关于实体(通常是用户)和其他数据的声明。原创 2023-11-19 07:00:00 · 970 阅读 · 0 评论 -
openssl开发详解
linux下openssl研发环境搭建,点击文章:#mermaid-svg-eZnBJ4h27NpVZuQy {font-family:"trebuchet ms",verdana,arial,sans-serif;fill:#333;}打开注册页面请求注册请求返回挑战认证请求开始挑战认证返回挑战认证响应提交挑战认证响应验证挑战认证返回注册成功。原创 2023-11-20 07:00:00 · 609 阅读 · 1 评论 -
根证书导入浏览器任然显示证书验证失败原因
输入网址发现浏览器提示您的连接不是私密连接。错误ERR_CERT_AUTHORITY_INVALID。原创 2023-11-08 07:00:00 · 3008 阅读 · 1 评论