本人公司要求用户填写账户密码时将密码使用RSA加密后存入数据库
问题就是 
RSA有公钥和私钥的区分
是不是每条数据也就是每个用户注册都要生成公钥和私钥呀
还有公钥和私钥能不能存进数据库
就是在用户注册的那条数据上加俩字段分别保存公钥和私钥
我感觉这样做法不对 也不安全
公钥和私钥到底如何的保存,保存在哪里,如何使用
呵呵  问题比较多 不知道有没有叙述清楚
希望能人指点一二!
小弟感激不尽
算法加密java数据库

解决方案 »

  1.   

    一个RSA密钥对,如果每个用户一个,光生成就非常耗费性能。
    密钥对可以加密后base64存在配置文件中,也可以就存在jks文件中,用javaAPI读取出来使用。
    我看过使用的是存在一个XML配置文件中,不过我认为直接使用jks文件存更方便。
    公钥加密,私钥解密。
    为了增加存储数据的安全性,应该使用盐值加密。至于盐的策略,得自己想想了。
    这些东西百度都能度到,google更多。
    密码使用MD5(密码+盐)的方式存也可以啊。
      

  2.   


    还有一个问题 
    就是比如说我有10W条数据
    当我进行rsa加密算法是
    针对这10W条或者更多数据 :
    我是每一个条数据生成不同的公钥和私钥  ?
    还是只生成一次公钥和私钥然后使用这 10W或者更多的数据  
    这个问题纠结了我很长时间  希望可以解答 
      

  3.   

    RSA是非对称加密方式,公钥用来加密,私钥用来解密。
    公钥可以随便分发,私钥必需安全保存。
    不太明白你公司需求,如果纯为用户口令加密的话,可以考虑消息摘要(如MD5)或对称加密,比非对称加密快的多。
    参考文章:
    http://blog.csdn.net/afer198215/article/details/8073050