如何加密 HTML5 网络存储?
Posted
技术标签:
【中文标题】如何加密 HTML5 网络存储?【英文标题】:How can I encrypt HTML5 web storage? 【发布时间】:2014-04-10 08:03:49 【问题描述】:mcrypt 还是 cryptojs 更好?
谁能给我一个如何使用 HML5 加密网络存储的示例?
HTML:
<div id="Data Personal">
<h1>Silakan Masukkan Data</h1>
<div>Nama = <span id="nama" contenteditable="true" onkeyup="storeMyContact(this.id)"></span></div>
<div>telepon = <span id="Telepon" contenteditable="true" onkeyup="storeMyContact(this.id)"></span></div>
<div>Email = <span id="email" contenteditable="true" onkeyup="storeMyContact(this.id)"></span></div>
<div>Kartu kredit = <span id="cc" contenteditable="true"onkeyup="storeMyContact(this.id)"></span></div>
</div>
JavaScript:
function storeMyContact(id)
var nama = document.getElementById('nama').innerhtml;
var Telepon = document.getElementById('Telepon').innerHTML;
var email = document.getElementById('email').innerHTML;
var cc = document.getElementById('cc').innerHTML;
localStorage.setItem('datnama', nama);
localStorage.setItem('dattlp', Telepon);
localStorage.setItem('datemail', email);
localStorage.setItem('datcc', cc);
【问题讨论】:
由于解密密钥仍将在源代码 js 文件中,所以有什么好处?根本不应该使用本地存储来存储敏感数据.. 就像 Mohammed 所说的,您可以对其进行加密以使其更难“窃取”敏感数据,但由于加密是在客户端代码中完成的,因此并不那么安全。您可以在服务器端服务上对其进行加密,其中加密(和盐)将对用户隐藏,但这样您就不会真正受益于本地存储...... @MohammedR.El-Khoudary,感谢您提供的信息。那我可以用php解密吗? 是的,我更喜欢服务器端加密..这种方式在客户端存储数据可以很好..但是你应该使用强大的加密算法,你应该指定一个特定的密钥更改周期..跨度> 【参考方案1】:除了我在上面的评论.. 存储常规或加密数据没有任何区别.. 因为本地存储只接受文本,那么如果您存储 JSON,例如它需要首先被字符串化.. 所以在存储你之前字符串化->然后加密->然后存储..并在检索时检索->然后解密->然后解析。
我曾经使用过 CryptoJS,那是用于哈希计算的,我曾经通过 SMS 发送哈希盐......它真的很好用。
使用例如 AES 进行加密/解密的示例是:
<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js">
</script>
<script>
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");
</script>
The howto here is straightforward and easy to follow
Demo Link : Look for the Console
【讨论】:
幸好它是引号中的“秘密密码”;-) 链接在我回答的最后。如果你想学习任何具体的东西。请不要犹豫,在这里问。 你现在也有这个库:github.com/brix/crypto-js【参考方案2】:如果使用 PHP,则必须使用 Mcrypt 等服务器端加密,然后使用 Base64 对其进行编码。
var nama = '<?php echo $base64EncryptedValue; ?>';
localStorage.setItem('datnama', nama);
【讨论】:
以上是关于如何加密 HTML5 网络存储?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用没有 Flash 的网络浏览器捕获和存储 h.264 格式的视频?
盘古开源分析:为什么IPFS&Filecoin的存储网络是加密行业最有前途的创新?