发现规律没有, 你要发给谁, 就用谁的公钥加密, 这样他收到后, 只有他自己的私钥能解密
但我们很多时候只是需要传输时加密, 收到后想要还原得到明文怎么办呢? 这就是我们接下来要说的对称加密
但对于逆向大佬来说, 还是可以拿到的, 因为你程序B总得解密得到通信密钥后放到一个变量里吧
比如说A是服务端,可以检测是否被篡改思路: 用非对称加密 来解决 对称加密算法的密钥传输 问题,你怎么保证通信过程安全呢?对消息内容进行hash,得到摘要,这两个程序都是你自己写的,B是客户端,此后AB双方通过对称加密通信经过摘要对比,
这个过程可能会被逆向跟踪, 我们最好再搭配反调试异步回调多线;时钟扰乱, 增大逆向难度
非对称加密过程很复杂, 所以它很慢, 比对称加密慢了几百倍, 用于网络传输不现实
如果你说, “用一个变量记录这个密钥, 服务端A和客户端B都放一份不就好了?”
如果你说, “非对称加密 这么6p, 那我们传输数据用它就好了, 忘了对称加密吧?”
A先把明文用 B的公钥 进行非对称加密, 这样在传输过程中, 除了B的私钥, 没有任何东西能解密
可以确实是可以, 但是你想啊, A的公钥解密, A的公钥可能不只发给B, 还发给了C,D, 那C,D不是也能对这个数据包解密了?
如果你说, “那我就把变量只放在服务端, 客户端与服务端第一次通信时, 服务端把密钥传过去”
注意: 公钥是公开的, A和B要进行非对称加密通信的话, A要把A的公钥发给B, B也要把B的公钥发给A
利用私钥加密, 公钥如果能成功解密得到摘要, 可以证明发送方的身份, 防止冒充
那你这个用于加密密钥的密钥总得明文发过去吧, 这是个先有鸡还是先有蛋的问题, 无穷无尽
如果你说, “A给B发送数据, 用A的私钥加密, B收到后, 用A的公钥解密不也可以吗?”
一般用来存储用户的密码等信息.验证密码时, 通过把用户输入同样采用相同的hash算法得到密文, 和数据库对比
非对称加密算法是一个非常神奇的算法, 它用的不是一个密钥, 而是一对密钥(两个), 我们可以称之为公钥和私钥,
如果对一串明文, 你用公钥加密 就只能用私钥解密, 你用私钥加密 就只能用公钥解密
因为你对明文肯定会在发送前加密, 别人对你的客户端用OD调试器附加, 对send函数下一个断点, 断下后逆向跟踪, 就可以很快找到你的密钥
那这个密钥直接放客户端也不行, 从服务端进行密钥传输也不行, 怎么办呢?
近期评论