查资料的时候发现很多人有疑惑,公钥和私钥到底哪个是用来加密,哪个是用来解密的,是否可以公钥加密私钥解密,同时也可以私钥加密公钥解密呢?针对这一问题,说下自己的理解。首先要明确两个问题:(1)既可以公钥加密私钥解密,也可以私钥加密公钥解密;(2)加密解密和签名验证是两个不同的概念。(一)先来说加密解密:需要同时使用公钥和私钥加密算法是非对称加密,最常见的便是RSA。举例说明非对称加密:如果A想要给
先明确一下概念: 公钥加密私钥解密,   没问题,也可以说是 "公共密钥加密系统 " 私钥加密公钥解密,一般不这么说,应叫 "私钥签名,公钥验证 ",也可以说是“公共密钥签名系统” 再来说一下 "公共密钥签名系统 "目的:(如果晕就多看几遍,这个没搞清,后面的代码就更晕) A欲传(信息)给B,但又怕B不确信该信息是A发的。 1.A选计算(
转载 2023-09-04 21:06:38
97阅读
非对称密钥RSA算法加解密在C#和Java之间交互的问题,这两天看了很多其他人写的文章,碰到了几个问题,最终解决问题。 参考地址:http://xw-z1985.iteye.com/blog/1837376 需求目的:完成c#请求端RSA加密(签名)问题,客户端采用C#开发,服务器端采用Java开发
转载 2018-06-20 17:16:00
587阅读
目录前言一、RSA 是什么?二、代码示例1.RSA 秘钥对生成及转换2.加解密方法3.RSA签名验证代码4. RSAEncryptUtil.java 完整代码示例前言RSA算法是目前非常常见的加密算法,他对应的加解密、签名验签的场景非常常见。因其特性对大字符串加解密效率较低,曾经想对较长字符串加解密,而因其解密过程为分段解密而捣鼓过;这里贴一下代码。一、RSA 是什么?二、代码示例1.R
转载 2023-08-31 10:02:09
295阅读
通过OpenSSL生成公私钥文件(如果没有OpenSSL工具建议下载Cmder工具自带OpenSSL指令)1、生成RSA密钥的方法  genrsa -out private-rsa.key 20482、获取客户端公钥文件openssl  req -new -x509 -key private-rsa.key -days 750 -out public-rsa.cer3
转载 2023-06-21 17:41:45
122阅读
第一种用法:公钥加密私钥解密。---用于加解密 第二种用法:私钥签名,公钥验签。---用于签名有点混乱,总结一下,你只要想:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密私钥负责解密;既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。换种说法,公钥和私钥是一对,谁都可以加解密,只不过谁加密谁解密是看
记录一次 公私钥json化再反向生成公私钥的操作一、背景因为项目需要将PrivateKey、PublicKey存到redis中,所以需要整体json化然后上传,再下次签名验签的时候,再取出来,反向生成对应的公私钥。二、准备工作首先需要设计合适的数据结构,满足新增证书上传,后续读取证书解析后生成公私钥。根据实际情况发现,设计一个实体即可,redis存储String,k-v就行。(当然也可以设置Has
转载 2024-08-13 16:01:38
136阅读
本文为大叔转载的,写的挺好,清晰易懂!一、公钥加密假设一下,我找了两串数字,一串是1*,一串是2*。我喜欢2*这串数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1*是我的公钥。我有一个文件,不能让别人看,我就用1*加密了。别人找到了这个文件,但是他不知道2*就是解密的私钥啊,所以他解不开,只有我可以用串2*,就是我的私钥,来解密。这样我就可以保护数据了。我的好朋友x用我的公钥1*加密了字符
转载 2022-08-25 14:08:47
141阅读
前言思考首先对于服务器数据的安全,我们可以考虑到,三种情况,第一种完全不让进入服务器,很直接,也很不合实际,手动狗头第二种让进入服务器,但是不让拿走数据,想法很简单,操作很复杂第三种拿到数据,也无法看懂,或者说无法解密,这就是现行的方法,及通过证书文件进行加密前置知识HTTPS 通过 TLS/SSL 协议实现 HTTP 的加密安全传输。而 TLS/SSL 协议主要依赖三种算法实现安全功能:非对称加
数字签名加密的区别 数字签名和验证:发送报文时,发送方用一个hash算法从报文中产生固定长度的报文摘要,然后利用自己的私钥对这个摘要进行加密,这个过程就叫签名。这个加密后的摘要作为报文的数字签名和报文一起发送给接收方,接收方用发送方的公钥解密被加密的摘要(报文附加的数字签名)得到结果A,然后用于发送方一样的hash算法从接收到的原始报文中算出报文摘要B。最后,把A和B作比较。如果相同,那么接收方
转载 2024-04-12 21:46:54
12阅读
RSA: 1、生成随机秘钥对 2、用公钥加密私钥解密  客户端:RSA用公钥加密之后,需要对加密后的数据在进行Base64加密, 以便在HTTP协议之间传输(兼容各语言的差异性)。 服务端:以JAVA端为列,接受到数据流(InputStream)之后,将流转化为字符串,先用Base64解密,将解密后的结果,在用RSA的私钥解密。 P
转载 2023-06-25 22:24:33
163阅读
请注意这里是加签验签,如有加密解密需求的,还请移步JDK中JCA的简单使用(三)---RSA加密解密Signature 类Signature类是一个引擎类,提供加密的数字签名算法,例如DSA或RSAwithMD5。加密安全签名算法采用任意大小的输入和私钥,并生成一个相对较短(通常是固定大小)的字节串——签名。只有私钥/公钥对的所有者才能创建签名。对于拥有公钥的任何人来说,恢复私钥在计算上是不可行的
转载 2023-07-07 15:31:19
190阅读
浅谈加密,签名,验签的理解 1 常用的加密算法 对称加密算法:加密和解密使用相同的密钥,典型的有AES\DES\RC5\IDEA(分组加密)\RC4(序列加密);非对称密码算法:又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。比如A发送,B接收,A想确保消息只有B看到,需要B生成一对公私钥,并拿到B的公钥.于是A用这个公钥加密消息,B收到密文后用自己的与
哈希函数哈希函数可以计算消息的摘要。消息的摘要(哈希值),可以视作消息的指纹。不像本书中介绍的其他的加密算法,哈希函数不需要密钥。哈希函数在计算数字签名与消息认证码中十分重要。哈希函数在其他密码学算法中也有十分广泛的应用。11.1 动机:对长消息签名在前面介绍的所有签名算法中,的长度都是有限制的,比如在 RSA 算法中消息长度不能长过模数,在实际应用中为 1024/3072 位长,既 12
转载 2024-07-11 12:12:21
83阅读
Ccflow电子签名解决方案电子签名的意义与用途:电子签名的意义就是让整体流程的上下处理里能够真实的感受到签名与纸质签名过程一致,每个节点上处理人的对表单数据的认可程度与现实的认可程度一样的。严格意义的电子签名的用途就是自己认可的数据被其他人所篡改,如果篡改了系统能让自己的系统无效。Ccflow的电子签名有如下三种类型,用户可以根据自己的实际情况选择其中的一种解决方案。手写签名:顾名思义,就是
介绍公钥密码体制在实际应用中包含数字签名和数字信封两种方式数字签名指用户用自己的【私钥】对原始数据的哈希摘要进行加密所得的数据。数字签名定义两种互补的运算:一个用于签名,另一个用于验证。"私钥签名,公钥验证"签名:发送方用特殊的hash算法,由明文中产生固定长度的【摘要】,然后利用自己的私钥对形成的摘要进行加密,这里加密后的数据就是数字签名。补充:因为公钥加密的效率低,而且对于所要加密的信息块长度
**第一个例子** 加密签名是两个不同的概念,又都涉及公钥和私钥的概念。公钥和私钥相当于钥匙和锁,锁可以用来锁住东西,钥匙可以用来打开对应的锁,一把钥匙只能开一把锁,当然钥匙和锁都可以复制。加密相当于我自己生成一把锁和一把钥匙,然后把锁发给你,你用我的锁把想发给我的东西锁上再发给我,我收到之后用钥匙打开锁。天下人都能拿到我的锁,但只有我有这把锁的钥匙。这个例子中,钥匙相当于私钥,锁相当于公钥。
转载 2024-01-28 15:55:52
89阅读
本文为大叔的,写的挺好,清晰易懂!一、公钥加密假设一下,我找了两串数字,一串是1*,一串是2*。我喜欢2*这串数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1*是我的公钥。我有一个文件,不能让别人看,我就用1*加密了。别人找到了这个文件,但是他不知道2*就是的私钥啊,所以他解不开,只有我可以用串2*,就是我的私钥,来。这样我就可以保护数据了。我的好朋友x用我的公钥1*加密了字符
数据加密:用公钥加密,只有用私钥解开,因为私钥只有你自己有,所以他保证了数据不能被别人看到 签名:用私钥加密,只能用公钥解密,任何人都可以用公钥验证。因为私钥只有你自己有,所以它可以保证数据只能是你发出的,不可能有别人发出,除非你得私钥丢失或被第三方破解出来 pig0045(pig)说的没错。 数字签名起不到加密作用,但可以确定是谁发出的信息 使用公钥加密算法,可以对明文进行加密,但不能
数字签名主要经过以下几个过程:信息发送者使用一单向散列函数(HASH函数)对信息生成信息摘要;信息发送者使用自己的私钥签名信息摘要;信息发送者把信息本身和已签名的信息摘要一起发送出去;信息接收者通过使用与信息发送者使用的同一个单向散列函数(HASH函数)对接收的信息本身生成新的信息摘要,再使用信息发送者的公钥对信息摘要进行验证,以确认信息发送者的身份和信息是否被修改过。数字加密主要经过以下几个过程
  • 1
  • 2
  • 3
  • 4
  • 5