我尝试在Firefox 6的地址栏中运行此JavaScript代码:
javascript:alert("Hello")
Run Code Online (Sandbox Code Playgroud)
我得到了
ReferenceError:未定义警报.
它曾经在Firefox 5中运行良好,但仍适用于Opera,Safari和Chrome.我该如何解决?
我想加密在我的Web应用程序中在服务器和客户端之间来回传输的数据.我会使用SSL,但需要证书和专用IP地址.我没有问题获得证书,但专用IP要求我升级到我的Web主机上每月20美元的商业托管计划.我没有计划这样做,因为我坚持我的20美元/年共享主机方案.
所以,我想实现SSL的替代方案.但它确实比SSL更多.除了加密来回发送的数据外,它还加密数据库中的行.我在考虑做这样的事情:
JavaScript代码:
var transfer_key = 'whatever';
function encrypt(data, key) {...}
function decrypt(data, key) {...}
function send_data_to_server(url, data)
{
$.post(url, {'data' : encrypt(data, transfer_key) }, function(response) {
var decrypted_response = JSON.parse(decrypt(response));
});
}
Run Code Online (Sandbox Code Playgroud)
PHP代码:
$data = $_POST['data'];
$transfer_key = 'whatever';
$storage_key = 'whatever2';
function encrypt($data, $key) {...}
function decrypt($data, $key) {...}
databaseQuery('INSERT INTO table VALUES (?)', encrypt($data, $storage_key));
$decrypted_data = decrypt($data, $transfer_key);
$response = processData($decrypted_data);
echo encrypt($transfer_key, $response);
Run Code Online (Sandbox Code Playgroud)
如您所见,客户端发送到服务器的数据是加密的,反之亦然.并且数据库中的数据也被加密.当然,我永远不会实现这样的键.我可能会为每个用户随机生成第二个或第三个密钥.因此,transfer_key可以等于与随机密钥连接的constant_key,对于storage_key也是如此.
这会是SSL的一个很好的替代品吗?如何以一种难以击败的方式实现这种类型的加密?这种方法有什么特别的缺点吗?
我可能会找到一个负责加密的JS库,并在服务器端使用PHP的mcrypt扩展.我在想Blowfish,也许是AES256,但我不确定哪一个能给我加密强度与内存消耗的最佳比例.
建议吗?
可以被1到20的所有数字整除的最小正数是多少?
我可以轻松地用一个带有循环的命令式编程语言来强制解决这个问题.但是我想在Haskell中做到这一点而不是让循环变得更难.我在考虑做这样的事情:
[n | n <- [1..], d <- [1..20], n `mod` d == 0] !! 0
Run Code Online (Sandbox Code Playgroud)
但我知道这不会起作用,因为"d"会使条件在d = 1时等于True.我需要提示如何制作它以便n modd计算为[1..20]并且可以验证全部20个号码.
再次,请不要给我一个解决方案.谢谢.
php ×2
alert ×1
browser ×1
encryption ×1
firefox6 ×1
haskell ×1
hint ×1
javascript ×1
security ×1
ssl ×1