【发布时间】:2017-11-12 03:43:05
【问题描述】:
我正在疯狂地尝试在 JavaScript 中实现这一点。 首先我会描述场景,然后我会放上我的代码,Python 版本,我似乎无法翻译成 JavaScript。
我有一个在服务器上运行的网页。我无法访问它,所以实现基本功能的唯一方法是使用 JavaScript。 该网页用于比较信息。信息以 CSV 格式存储,我使用该格式通过 AJAX 调用即时创建 HTML 表格。为了不让用户快速获得这些信息,使他们能够打印源代码并“窃取”,我遇到了一系列解决方案,例如 Base64 编码(我知道这被认为是“默默无闻的安全性”和这是一个不好的做法,但我在这里别无选择)。
Base64 在这种情况下很容易使用,但我丢失了 UTF-8 中的所有特殊字符(如 á é í ó ú ñ 等),它们是我的语言(西班牙语)的一部分。
所以这里出现了首选的解决方案,它就像 Python 中的一个魅力:使用按位异或。使用这种方法我能达到什么目的:
- 如果有人知道 CSV 文件的 url,那么如果没有基本的编程知识来对其进行解码,阅读文本就不会那么容易了。
- 我可以轻松地对源数据库进行编程以导出数据,然后运行 XORing 函数,将这些文件上传到服务器,然后也可以即时对它们进行解码。
在最后一步,我无法实现我想要的。
这是我的 Python 脚本: 编码:
b = bytearray(open('file.csv', 'rb').read())
for i in range(len(b)):
b[i] ^= 0x71
open('file.out', 'wb').write(b)
解码:
b = bytearray(open('file.out', 'rb').read())
for i in range(len(b)):
b[i] ^= 0x71
我需要在JS中实现那个小解码功能。 提前感谢大家的时间。
【问题讨论】:
标签: javascript python encoding utf-8 client-side