看你是哪种类型的加密,如果只是授权类型的,就用机器码加密, 然后保存在客户端即可(可以对客户可见)...
对于winform,多用非对称加密,把公钥存储在客户端即可,这个本身就不是私密信息。
不好意没说清楚,我现在用的公钥加密,现在想问私钥在客户端应该怎样存储才是安全的?
@门外徘徊: 建议换成私钥加密,将公钥放在客户端。
如果私钥在客户端,那么要破解也需要知道公钥,还是不太容易的~
@幻天芒: 这个是什么意思?能不能说清楚点啊?windows有没有给提供安全机制来存储私钥??
@门外徘徊: 注册表算不算?哈哈~
1、首先:非对称加密的公钥一般是公开的,自己保留私钥。所以对于Winform,一般是私钥加密,然后公钥在客户端明文存储都不是问题。
2、就是你的这种情况,私钥放在客户端,那么就算是破解,也还需要知道公钥啊,如果你保管好公钥即可;
3、对于如何对私钥加密,你可以用其他对称加密算法,加密一次就行。这样也就增加了破解了难度。
@幻天芒:
我现在就是想做通信,用公钥加密通信的内容,然后用私钥解密获得信息,通信是双向的,所以双方都需要知道对方的公钥(用来加密通信的内容),发送方使用接收方的公钥进行加密,接收方用自己的私钥进行解密,所以私钥要在本地存储,但怎样存储才安全呢?假如说用对称加密对私钥进行加密,那么我想问下对称加密所用的加密密钥是怎样生成的呢?是固定的吗?所有的客户端都是用相同的对称加密密钥?这样子能安全吗?再就是https这种协议他们的私钥应该也是在本地存储的吧,但是他们是怎样存储的呢?
@门外徘徊: 1、就算是通信,也可以做到私钥自己保留;客户端->服务器(公钥加密);服务器->客户端(私钥加密)。
2、对称加密,一般来说密钥是一样的,你也可以根据客户机硬件,算一个密钥;
3、Https,貌似是证书,大概是windows在管理吧,这个我不清楚;
4、就算把密钥写在程序中,混淆后,也还是比较安全的。如果获取到了密钥,那你的程序也被破解。用不用密钥都不太重要了~