在我的个人计算机上的网站未使用localhost的情况下,我想知道是否有不需要php / htaccess或localhost网络的密码保护技术。我的电脑上只有纯HTML文件。我知道,自从它在我的个人计算机上以来,就没有办法得到完全的保护,而只有一个简单的方法,我可以将密码存储在文本文件中,然后我的网站使用它来获取登录信息。
谢谢。
答案 0 :(得分:0)
好吧
function gamma(text, key) {
let res = '',
i = 0;
for (let c of text)
res += String.fromCharCode(
c.charCodeAt(0) ^ key.charCodeAt(i++ % key.length))
return res
}
site = "Z\t\u001d\u0005\u0012O\u0011\u0004\n\u0000\u0000VA\f\u000b\n\bHL\u0003\u000fO\u0006\u0003\u0003\u001d\u0017WI\t\u001d\u0005\u0012Q"
onload = function() {
document.body.innerHTML = gamma(site, prompt('password?'))
}
除非您输入有效的密码(恰好是“ fork”),否则您将获得垃圾邮件,而不是站点。
基本上,它(使用幼稚的游戏算法)“加密”整个网页。由于这是对称加密,因此可以使用相同的密钥将文本恢复为初始状态。
这是一个小片段,可以使整个过程自动化:
function gamma(text, key) {
let res = '', i = 0;
for (let c of text)
res += String.fromCharCode(c.charCodeAt(0) ^ key.charCodeAt(i++ % key.length))
return res
}
$ = x => document.getElementById(x)
encode = function() {
let site = $('site').value,
pass = $('pass').value
let enc = JSON.stringify(gamma(site, pass))
$('out').value = [
'<script>',
`site = ${enc}`,
gamma,
'onload = function() {',
'document.body.innerHTML = gamma(site, prompt("password?"))',
'}</' + 'script>'
].join('\n')
}
<h3>Ultimate web protector, patent pending!</h3>
<p><textarea id="site" cols=80 rows=10>my site</textarea></p>
<p><input id="pass" value='my password'></p>
<p><button onclick="encode()">Encode!</button></p>
<p><textarea id="out" cols=80 rows=10></textarea></p>
对于将来的读者:该代码是一个玩笑,甚至不要考虑使用它来真正保护任何严重的东西!但是,如果您使用诸如AES之类经过验证的算法来替换上面的简单“加密”,那么如果您拥有无服务器环境,但仍需要用密码保护,则可以将其用作现实解决方案的原型。