证书签名 package test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.security.KeyStore; import java.security.PrivateKey; import java.security…
通过OpenSSL生成公私钥文件(如果没有OpenSSL工具建议下载Cmder工具自带OpenSSL指令) 1.生成RSA密钥的方法 genrsa -out private-rsa.key 2048 2.获取客户端公钥文件 openssl  req -new -x509 -key private-rsa.key -days 750 -out public-rsa.cer 3.获取服务器私钥文件 openssl pkcs12 -export -name zhangsan -in public-rs…
1 RSA加密算法介绍 RSA又叫非对称加密算法,这类加密算法有一对秘钥,其中一个用来加密一个用来解密.这一对秘钥中你可以选择一个作为私钥(自己保存),另一个作为公钥(对外公开).用私钥加密的内容只能用对应的公钥解密,反之用公钥加密的内容只能用对应的私钥解密.还有一种对称加密算法,其加密秘钥和解密秘钥为同一个秘钥,比如DES. 2 RSA加密过程 假设A 产生了一对秘钥,私钥自己保存,公钥对外公开,且B获得了A的公钥.在A,B通信的过程中:A向B发送信息:A用自己的私钥加密,B只能用A的公钥解密…
对于上上篇博客中我讲的一个故事,本文引用: https://www.cnblogs.com/ButterflyEffect/p/9851403.html 故事中提到的关于加密会出现,私钥加密,公钥解密的情况,这种情况我们将它称为[私钥加签,公钥验签] 说句好理解的话: 既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出[公钥负责加密,私钥负责解密] 同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出[私钥负责加签,公钥负责验签] 由以上得…
首先说明 MS并不建议私钥加密,而且.net 于安全的考虑,RSACryptoServiceProvider类解密时只有同时拥有公钥和私钥才可以,原因是公钥是公开的,会被多人持有,这样的数据传输是不安全的.但是架不住有BouncyCastle这个第三方组件,也是可以实现的.只不过在.net core 2.2 下,没有了 RSACryptoServiceProvider,只好改用 System.Security.Cryptography.RSA 来实现 RSA 私钥加密 #Const SUPPOR…
最近经常在网上看到有人说巨硬的 CNG(Cryptography Next Generation 即下一代加密技术) 只提供 RSA 公钥加密私钥解密,没有提供 RSA 私钥加密公钥解密,他们要自己封装一个.. 我想说,你 TM 真的有思考过这个做法安全吗?这个做法有意义吗? 有点 Brain 的人想想就知道,把一个公开的,任何人都可以拿到的公钥作为解密密钥,那和不加密有什么区别?这样的做法甚至有暴露私钥的风险! 那来说说正确的做法: (1) 如果只是需要验证客户端收到的内容是服务器返回的,没有…
RSA私钥和公钥文件格式 (pkcs#1, pkcs#8, pkcs#12, pem) 2018年03月07日 11:57:22 阅读数:674 Format Name Description PKCS #7 Cryptographic Message Syntax Standard A PKCS #7 file can be used to store certificates, which is a SignedData structure without data (just the ce…
# 原创,转载请留言联系 为什么会出现这么多加密啊,公钥私钥啊,签名啊这些东西呢?说到底还是保证双方通信的安全性与完整性.例如小明发一封表白邮件给小红,他总不希望给别人看见吧.而各种各样的技术就是为了保障通信的安全.(本文务必从上到下看) 1.对称加密与非对称加密 对称加密: 对称加密是最快速的一种加密方式.加密和解密用的是同样的密钥. 对称加密是怎么实现的呢?举个例子说明. 小明写了一封信给小红.他用箱子装着信,同时箱子上锁,他去快递店把这个箱子和开启箱子的钥匙一起快递给小红.小红收到箱子后,…
一.前言 在IdentityServer4中有两种令牌,一个是JWT和Reference Token,在IDS4中默认用的是JWT,那么这两者有什么区别呢? 二.JWT与Reference Token的区别  1.JWT(不可撤回) JWT是一个非常轻巧的规范,一般被用来在身份提供者和服务提供者间传递安全可靠的信息.JWT令牌是一个自包含的访问令牌 - 它是一个带有声明和过期的受保护数据结构.一旦API了解了密钥材料,它就可以验证自包含的令牌,而无需与发行者进行通信.这使得JWT难以撤销.它们将…
由于对接第三方机构使用的是Java版本的rsa加解密方法,所有刚开始在网上搜到很多PHP版本的rsa加解密,但是对接java大多都不适用. 以下php版本是适用于对接java接口,java适用密钥再php语言使用是需要添加 -----BEGIN CERTIFICATE----- -----END CERTIFICATE----- 使用密钥: 加密公钥  public_key.cer 解密私钥  private_key.key 签名私钥 sign_key.key 验签公钥 verify.cer <…