说我有来自客户端和服务器的来回发送的字符串。
但是我希望在通过客户端发送之前对其进行安全加密。一旦它在服务器上,它应该被解密和处理。
另外,密码加密如何工作?用户注册,并在输入密码后,将其加密到服务器上,并存储在数据库中。用户登录时怎么办?用户密码是否再次加密并与数据库中的密码进行匹配?
答案 0 :(得分:9)
asymmetric algorithm可以像这样使用:
所有这些都已经实施和测试过了,为什么要重新发明轮子而不是直接使用HTTPS呢?这将保证客户端和服务器之间的任何交换都将被加密。
答案 1 :(得分:1)
登录问题
密码的使用方法有很多种。最直接(但不太安全)的是密码本身以明文形式发送到服务器的位置。其他方法仍然需要发送密码,但是它是加密的,例如使用服务器的公钥。其他方法涉及身份验证质询,其中服务器发送随机值/字符串,客户端将其转换为排序的哈希函数(当然,将密码作为密钥),转换结果被发送到服务器,将其与自己对同一进程的计算进行比较。使用挑战的优势在于它可以防止中间人攻击,因为每次身份验证消息都不同(因此固定消息允许“中间人”重放记录的与密码传递相关联的数据包序列,因此错误地识别自身)
关于 [措辞严重] 主要问题(“只能在其所在的计算机上解码”......)
在给定计算机(MAC地址)上存在多个物理设备(加密狗等)以及内在身份指示符,以及硬盘上的逻辑结构/内容(尽管我们是进入“软”,即更容易携带的区域......),可以用来识别给定的主机,然后提供必要的元素(键等)来解码消息。
但是,我认为这个问题更通用:
两台计算机可以秘密共享一个密钥,用于交换其他计算机无法解密的信息(轻松)。这些密钥既可以在外部放置,也可以在每个新会话的动态中使用,最初使用公钥加密,例如Diffie-Hellman key exchange