(1)密钥容器是什么??和密钥什么关系,为什么自己不能指定密钥?(2)密钥容器和密钥对是一一对应的吗?密钥是系统根据密钥容器给的吗?(3)既然是非对称加密,双方都在使用密钥容器进行加密,解密!很奇怪吗??谢谢大家回答!

解决方案 »

  1.   

    好的,你现在别离开这个页面,给我写一个(一对)RSA密钥出来?!RSA密钥就是这样的。你调用它一次,它随机地给你产生一对密钥。关键地,这可不是随便胡乱写两个值,你随便写出1亿对字符串我相信也不可能有一对符合RSA密钥的规则,所以需要系统给你运算产生。所谓“双方都在加密解密”,你忽略了一个必须的机制,RSA的私钥拥有者会将公钥发布出去,所有人都可以知道,而私钥自己收藏起来。公钥加密的信息不可能能用公钥解密(否则就成了对称加密了)。所以发送信息的人用对方的公钥加密,然后接收者用自己的私钥解密。
      

  2.   

    非对称加解密跟对称加解密的却别是很简单的道理。很多年前那些携带者密电本的大使们,要将手提箱跟自己的手铐在一起,以被别人窃取密码。因为别人掌握了密码本、猜测出加密方法,也就解密了。现在,他把加密程序都公开了,把加密密码也公开了,可是别人还是无法破译。这就是非对称加密。当然,RSA很慢,所以它通常是用来加密那个用来传送对称加密密码的消息,之后双方通常就会使用对称加密方法来加密通讯。
      

  3.   

    我不是不知道RSA是什么,而是不懂怎么用……
    我是想让大家说下,C# 是如何进行RSA加密的……
      

  4.   


    那是因为RSA加密如果要实现身份验证,加密就必须是动态的。静态加密完,别人一样可以截获密文然后出去仿造你的身份。 所以进行rsa加密时都要求公钥端给你一个随机数,然后你把这个随机数和你的身份信息一起用私钥加密。返回后对方使用公钥解密,再核对给的随机数是否符合。这样才能真正做到身份验证