㈠ openssl rsa 可以用私钥加密 公钥解密吗
可以,私钥加密公钥解密是 数字签名的工作方式
㈡ RSA签名时是发方用私钥加密,用私钥解密,但接收方不知道发方私钥怎么解密
但是接收方知道发送方的公钥啊
楼主首先就没懂签名加密的概念,这里说的是分两部分一 先签名 二 后加密
举例来说,一 签名,假定接收方B已知发送方A的公钥,则A可以通过用自己的私钥对整个消息或消息的散列码加密来产生数字签名,由于是用发送方A的私钥对消息加密,所以只有A可加密消息,因此,整个加密后的消息就是数字签名。
接着是加密,用B的公钥对或对称密码再对消息加密即可。
解密很简单,因为加密就是B自己的公钥,只有数字签名才用到A的私钥(而此前B已知A的公钥)
㈢ RSA怎样设置公钥和私钥
这个很简单 如果密码手工输入 理论上完全可以 但是密钥有时候二进制有时候会上百位 转化到其他进制要几十位 很容易出错 而且私钥 公钥是从一个推出另一个的 手工输入怎么保证你输入的公钥私钥就可以一定可以配成一对keyPair 而且公钥私钥 必须还要从用p q来算 等等如果手工输入太麻烦了
为何我们不把这些繁琐的 容易出错的东西 封装起来来简化我们的开发呢
所以我们有了各种各样的开发包 各种各样的架构 各种各样的库
java中
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
KeyPair key = keyGen.generateKeyPair();
cipher.init(Cipher.ENCRYPT_MODE, key.getPublic());
cipher.init(Cipher.DECRYPT_MODE, key.getPrivate());
这是我以前写的代码的片段 不是连续的 大体上就是先得到一个rsa的密钥对 然后调用getpublic()
getprivatekey()获取公私钥就可以了
㈣ RSA算法加密
RSA加密算法是一种典型的非对称加密算法,它基于大数的因式分解数学难题,它也是应用最广泛的非对称加密算法,于1978年由美国麻省理工学院(MIT)的三位学着:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。
它的原理较为简单,假设有消息发送方A和消息接收方B,通过下面的几个步骤,就可以完成消息的加密传递:
消息发送方A在本地构建密钥对,公钥和私钥;
消息发送方A将产生的公钥发送给消息接收方B;
B向A发送数据时,通过公钥进行加密,A接收到数据后通过私钥进行解密,完成一次通信;
反之,A向B发送数据时,通过私钥对数据进行加密,B接收到数据后通过公钥进行解密。
由于公钥是消息发送方A暴露给消息接收方B的,所以这种方式也存在一定的安全隐患,如果公钥在数据传输过程中泄漏,则A通过私钥加密的数据就可能被解密。
如果要建立更安全的加密消息传递模型,需要消息发送方和消息接收方各构建一套密钥对,并分别将各自的公钥暴露给对方,在进行消息传递时,A通过B的公钥对数据加密,B接收到消息通过B的私钥进行解密,反之,B通过A的公钥进行加密,A接收到消息后通过A的私钥进行解密。
当然,这种方式可能存在数据传递被模拟的隐患,但可以通过数字签名等技术进行安全性的进一步提升。由于存在多次的非对称加解密,这种方式带来的效率问题也更加严重。
㈤ 有没有一种软件能用RSA的私钥进行加密,然后用公钥进行解密的
如果只是单方面采用非对称性加密算法,其实有两种方式,用于不同用处.第一种是签名,使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改.但是不用来保证内容不被他人获得.第二种是加密
㈥ rsa是公钥加密还是私钥加密
公钥加密,私钥解密。
㈦ RSA已知明文和公钥能得到私钥加密的密文吗
首先破解RSA是指 密文 ->明文 的过程!
假设明文m,密文c,私钥d,公钥e,RSA加密的流程如下:
1、两个较大的互不相等的质数p和q
2、n = p * q
3、fn = (p - 1) * (q - 1)
4、e 与 fn 互质, 且1 < e < fn
5、d满足 de % fn = 1
6、加解密:
c = (m^e) % n
m = (c^d) % n
上面的公式可以理解为通过公钥加密,而通过私钥解密。
第一种情况:已知明文和公钥得到私钥加密的密文,这个是加密过程,与私钥d关系不大,加密过程主要在于n的值!
假设这种情况已知明文m,公钥e,私钥d,密文c有无数种。
第二种情况:已知明文密文和公钥得到私钥。
已知明文m,密文c,公钥e求私钥d,套入次公式:c= (m^e) % n,n的值也是不唯一的,所以私钥d的值也不唯一。
在有正确答案做对比的情况下个人感觉第二种情况比较容易求出吧。
个人见解,欢迎讨论。
㈧ RSA的公钥和私钥到底哪个才是用来加密和哪个用来解密
其实公钥和私钥都可以用来加密或解密---只要能保证用A加密,就用B解密就行。至于A是公钥还是私钥,其实可以根据不同的用途而定。
例如说,如果你想把某个消息秘密的发给某人,那你就可以用他的公钥加密。因为只有他知道他的私钥,所以这消息也就只有他本人能解开,于是你就达到了你的目的。
但是如果你想发布一个公告,需要一个手段来证明这确实是你本人发的,而不是其他人冒名顶替的。那你可以在你的公告开头或者结尾附上一段用你的私钥加密的内容(例如说就是你公告正文的一段话),那所有其他人都可以用你的公钥来解密,看看解出来的内容是不是相符的。如果是的话,那就说明这公告确实是你发的---因为只有你的公钥才能解开你的私钥加密的内容,而其他人是拿不到你的私钥的。
最后再说一下数字签名。
数字签名无非就两个目的:
证明这消息是你发的;
证明这消息内容确实是完整的---也就是没有经过任何形式的篡改(包括替换、缺少、新增)。
其实,上面关于“公告”那段内容,已经证明了第一点:证明这消息是你发的。
那么要做到第二点,也很简单,就是把你公告的原文做一次哈希(md5或者sha1都行),然后用你的私钥加密这段哈希作为签名,并一起公布出去。当别人收到你的公告时,他可以用你的公钥解密你的签名,如果解密成功,并且解密出来的哈希值确实和你的公告原文一致,那么他就证明了两点:这消息确实是你发的,而且内容是完整的。
其实概念很简单:
小明想秘密给小英发送消息
小英手里有一个盒子(public key),这个盒子只有小英手里的钥匙(private key)才打得开
小英把盒子送给小明(分发公钥)
小明写好消息放进盒子里,锁上盒子(公钥加密)
小明把盒子寄给小英(密文传输)
小英用手里的钥匙打开盒子,得到小明的消息(私钥解密)
假设小刚劫持了盒子,因为没有小英的钥匙,他也打不开
㈨ java中RSA用私钥加密公钥解密问题
公钥和私钥可以互换的用,用公钥加密私钥解密,用私钥加密公钥解密都ok,方法一样
㈩ rsa的私钥加密信息与公钥加密信息两种方法有何区别
RSA 的 PKCS #1 padding 方案在加密前对明文信息进行了随机数填充。 这个博客解析这个的 w屏w蔽w/spencerN/archive/2012/10/18/2729602.html