后端 PHP 给浏览器发送一个密钥,怎样才尽可能不被发现?

2017-11-09 11:24:20 +08:00
 alwayshere

前端 js 和后端 php 公用一套加密解密系统,公用一个密钥,php 加密的字符串传到前端通过 js 进行解密,现在这个加密和解密函数的密钥想尽可能不被别人发现,该怎样实现?

  1. 用 ajax 二次请求密钥,但是 F12 一抓包就暴露了
  2. 把密钥写进一个 png 图片(类似二维码)里,通过 js 结合 canvas 来读取,但是 IE 表示无能为力
  3. 通过 cookie,input hidden 这些就更暴露了
  4. append 一个 script 标签,通过 jsonp 的形式加载,跟 ajax 一样,一抓包就暴露了
  5. websocket ? 因为 IE, 不考虑

求好心 V 友们,有没有好点的办法?

8496 次点击
所在节点    程序员
47 条回复
LeeSeoung
2017-11-10 09:16:53 +08:00
楼上所有说的方法都只能防一时。。在会逆向的人眼里都是小菜。。
ck65
2017-11-10 09:35:45 +08:00
求佛。
nilai
2017-11-10 10:06:22 +08:00
不考虑中间人替换流量, 只防中间人监听的话, 不上 HTTPS, 就一招 DH 算法 就够了,
catinred
2017-11-10 10:27:08 +08:00
@nilai 前端浏览器的 js 跑 DH 算法的性能 估计很低 楼主直接上 https 不就完事了吗?
Tompes
2017-11-10 11:36:42 +08:00
后端加解密才是正途,浏览器端都是果体..
killerv
2017-11-10 12:31:39 +08:00
你这思路就是错的,只要发送到浏览器,没有什么是不能看到的。最多进行非对称加密看不到内容是什么意思。不知道为什么这么多人说 https,https 最多就是防止运营商,你能防止用户看到 https 内容?
elevioux
2017-11-10 20:18:04 +08:00
题主加密的目的是什呢?

防止中间人获取信息?那直接上 https 就好啊。

浏览器端的所有信息都是暴露给用户的,再怎么隐藏都是可以通过 js 知道你的密钥放哪里的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/404877

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX