Q:JavaScript中的数据加密是什么意思?
JavaScript代码通常是明文,例如在浏览器环境中对源代码进行模糊处理也可以进行分析和修改。 也可以反编译使用adobe extendscript工具包生成的二进制脚本。 这是通过笔者亲自参与的项目验证的。 所以很久以前就有JS=不安全的幻想!
黑客篡改某知名企业官网事件
如果是几年前的话,在各个浏览器拼命努力的过程中,很多JS脚本源代码会在别人的机器上被解释执行,所以不可能不成为开源。 这意味着任何加密措施都是徒劳的。 但现在不同了。 随着Nodejs的创立,javascript爆发了极强的生命力。 特别是在Typescript的加持下。 这样不仅可以在服务器上进行开发,还出现了许多NW.JS、electron等跨平台解决方案。 面对嘈杂的互联网,为了确保传输中的数据安全,应该采取一定的加密措施。
对于编程初学者来说,JavaScript是入门的最佳选择
最常见的SSL加密,即所谓的https,操作起来有点麻烦,非常适合全球部署的安全措施。 今天,我们将为您介绍一种适用于javascript脚本轻松加密计算的文本数据加密方法。 这就是接下来要介绍的加密方式。 凯撒密码。 以下是来自百科的介绍:
密码学中,粗心的钻石密码是最简单和众所周知的加密技术。
一种替换加密的技术,其中明文中的所有字符在字母后面(或前面)偏移一定数量,然后替换为密文。 例如,如果偏移为3,则所有字符a被d替换,而b为e,如此。 这种加密方法源于罗马共和时代粗心的钻石的名字,当时粗心的钻石用这种方法与部下们取得联系。
ymdttt半身雕刻
一旦习惯了规则,就可以用javascript很容易地实现。 下图是针对字母安装的凯撒加密,加解密使用相同的函数安装。
使用javascript进行凯撒加密
根据凯撒密码的原理,核心的想法是遍历字符串,按字符使用charCodeAt ()转换为Unicode代码,然后可以使用各种数学运算对Unicode代码进行偏移。 同样地,通过将fromCharCode ()转换为字符串,完成了这个加密和解密过程。
一个函数同时实现解密的密钥是第三个参数,参数decrypt为true时用作解密。
其中,扩展运算符(…)和三元运算符)? )都需要ES6环境的支持,ES5语法需要使用bable等工具进行转换。 推荐凯撒加密算法的一个是可以定制密码而不是像Base64那样的固定格式,另一个是对计算能力的需求比AES等流行算法小,毕竟只有简单的一步数学计算