小编Dav*_*och的帖子

为什么BCrypt.net GenerateSalt(31)会立即回归?

在阅读了Jeff Atwood关于存储密码的帖子后,我偶然发现了BCrypt.net,这让我想到了Thomas Ptacek建议使用BCrypt来存储密码.这最终促成了我对BCrypt的C#实现

在上面最后一个链接的评论中,有人问"为什么GenerateSalt(30)永远服用,但GenerateSalt(31)似乎根本不花时间?"

我运行了BCrypt.HashPassword(密码,BCrypt.GenerateSalt(31))并在0毫秒内得到了我的结果.

我已经运行BCrypt.HashPassword("密码",BCrypt.GenerateSalt(30))超过5分钟,但仍然没有结果.

我意识到我们可能不需要随机生成的30个字符的盐来创建我们的密码哈希值(或BCrypt案例中的不可逆加密)多年.编辑我应该读一下代码,logRounds与salt长度没有任何关系.谢谢Aaronaught.

那么,为什么GenerateSalt(31)几乎立即返回一个值(当它需要大约两倍于GenerateSalt(30)的时候?

UPDATE

这是修复:

private byte[] CryptRaw(byte[] password, byte[] salt, int logRounds) {
    // ... snip ...
    uint rounds = 1U << logRounds;
    // ... snip
}
Run Code Online (Sandbox Code Playgroud)

c# salt bcrypt bcrypt.net

22
推荐指数
2
解决办法
5826
查看次数

异步Google Analytics [Javascript Golf]

不幸的是,这可能不是一个有效的Code-Golf问题,因为它可能只是Javascript; 然而,由于 这可能是现实世界中唯一有用的代码 - 高尔夫比赛, 我将继续发布它.


谷歌Analytics(分析)Asyncronous跟踪片段被许多网站使用.

脚本有点像这样:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
Run Code Online (Sandbox Code Playgroud)

获胜者将通过最短RAW DEFLATE被确定(有 HTTP 1.1 DEFLATE(又名ZLIB)和RAW DEFLATE之间的差)由字节数压缩代码将加载和在页面上初始化异步谷歌分析.

在平局的情况下,获胜者将由原始字符数确定.如果我们还有领带,我们将根据提交的最后编辑/时间来决定.

一些规则:

  • gaq || []检查是不需要的,应该被删除.
  • 必须是协议"意识到"(http vs https).
  • 不得污染全局命名空间(_gaqvar 除外).
  • 必须可复制到任何(X)HTML文档,即不依赖于页面的标记.
  • 必须适用于所有A级浏览器.
  • 但这 …

javascript google-analytics code-golf

18
推荐指数
1
解决办法
4288
查看次数

如何递归地找到两个表之间的相交地理位置

我正在运行Postgres 9.6.1和PostGIS 2.3.0 r15146并且有两个表.
geographies可能有150,000,000行,paths可能有10,000,000行:

CREATE TABLE paths (id uuid NOT NULL, path path NOT NULL, PRIMARY KEY (id))
CREATE TABLE geographies (id uuid NOT NULL, geography geography NOT NULL, PRIMARY KEY (id))
Run Code Online (Sandbox Code Playgroud)

给定一个数组/套ids的表geographies,什么是查找所有交叉路径与几何的"最佳"的方式?

换句话说,如果一个初始geography有一个相应的交叉,path我们还需要找到这个相交的所有其他 .从那里,我们需要找到这些新发现的所有其他相交,依此类推,直到我们找到所有可能的交叉点.geographiespathpathsgeographies

初始地理标识(我们的输入)可以是0到700之间的任何位置.平均值大约为40.
最小交叉点将为0,最大值将为大约1000.平均值可能大约为20,通常小于100连接.

我创建了一个这样做的功能,但我是PostGIS中的GIS和Postgres的新手.我发布了我的解决方案作为这个问题的答案.

我觉得应该有比我想出的更有说服力和更快速的方式.

sql gis postgresql postgis sqlgeography

17
推荐指数
1
解决办法
1631
查看次数

为什么不能通过IIS7中的web.config删除"服务器"响应标头?

删除服务器响应标头IIS7

我知道如何Server根据上面的链接删除HTTP模块的响应头.

我只是想知道为什么有必要以这种方式删除它.

asp.net iis-7 response-headers

16
推荐指数
2
解决办法
1万
查看次数

将Google Analytics Cookie转换为本地/会话存储

更新 http://jsfiddle.net/musicisair/rsKtp/embedded/result/


Google Analytics会设置4个Cookie,这些Cookie将与该域的所有请求一起发送(并设置其子域).据我所知,没有服务器实际上直接使用它们; 它们只__utm.gif作为查询参数发送.

现在,显然Google Analytics会对其值进行读取,写入和操作,并且需要将其用于GA跟踪脚本.

所以,我想知道的是,是否有可能:

  • 写完__utm*后将cookie 重写到本地存储ga.js
  • ga.js运行后删除它们
  • ga.js读取之前,将cookie从本地存储重写回cookie表单
  • 重来

或者,猴子补丁ga.js在开始cookie读/写部分之前使用本地存储.

显然,如果我们想要删除__utm*cookie 那么远,我们也希望使用Async的分析变体.

我猜这次投票是因为我没有问一个问题.DOH!

我的问题是:
它可以如上所述完成吗?
如果是这样,为什么还没有这样做?


我有一个默认的HTML/CSS/JS样板模板,可以通过YSlow,PageSpeed和Chrome的审核获得近乎完美的分数.我真的在寻找一种方法来在支持本地存储的浏览器中从Google Analytics中挤出剩余的cookie字节.

javascript cookies google-analytics monkeypatching httpcookie

16
推荐指数
1
解决办法
4983
查看次数

反混淆Javascript

这怪物是什么?有人知道一种让它可读的方法吗?

<script type="text/javascript"> 
    //<![CDATA[
    <!--
    var x="function f(x){var i,o=\"\",l=x.length;for(i=0;i<l;i+=2) {if(i+1<l)o+=" +
    "x.charAt(i+1);try{o+=x.charAt(i);}catch(e){}}return o;}f(\"ufcnitnof x({)av" +
    " r,i=o\\\"\\\"o,=l.xelgnhtl,o=;lhwli(e.xhcraoCedtAl(1/)3=!76{)rt{y+xx=l;=+;" +
    "lc}tahce({)}}of(r=i-l;1>i0=i;--{)+ox=c.ahAr(t)i};erutnro s.buts(r,0lo;)f}\\" +
    "\"(0),9\\\"\\\\$.;(.34U03\\\\\\\\16\\\\0E\\\\NSCZhC24\\\\03\\\\01\\\\\\\\St" +
    "DEMPbM02\\\\0C\\\\x#opms58aJ}qb<jb7`17\\\\\\\\hc7s17\\\\\\\\rzEeljdp7m03\\\\"+
    "\\\\36\\\\0F\\\\24\\\\06\\\\01\\\\\\\\25\\\\01\\\\02\\\\\\\\26\\\\03\\\\03\\"+
    "\\\\\\(W4N02\\\\\\\\24\\\\02\\\\00\\\\\\\\07\\\\0N\\\\14\\\\0P\\\\BI07\\\\0" +
    "4\\\\00\\\\\\\\02\\\\02\\\\02\\\\\\\\14\\\\06\\\\02\\\\\\\\24\\\\0L\\\\25\\" +
    "\\06\\\\01\\\\\\\\3:?(>4\\\"\\\\f(;} ornture;}))++(y)^(iAtdeCoarchx.e(odrCh" +
    "amCro.fngriSt+=;o27=1y%i;+=)y90==(iif){++;i<l;i=0(ior;fthnglex.l=\\\\,\\\\\\"+
    "\"=\\\",o iar{vy)x,f(n ioctun\\\"f)\")"                                      ;
    while(x=eval(x));
    //-->
    //]]>
</script> 
Run Code Online (Sandbox Code Playgroud)

javascript obfuscation

12
推荐指数
1
解决办法
7805
查看次数

我是否可以避免存储MS Exchange凭据,同时仍能进行身份验证(针对EWS)?

我正在构建一个应用程序,用于同步用户的Exchange Server帐户(支持的版本2007-2013)和应用程序之间的数据.

应用程序不能使用模拟(至少不在典型情况下),因为用户可以在任意数量的域和交换服务器上.

我知道我最初不得不要求他们的用户名/电子邮件地址和密码.但是,如果我不需要,我真的不想负责存储这些凭据(即使它们是加密的,我宁愿不加密).

我不确定要问什么问题,所以我要跟这些:

Exchange Server如何进行身份验证?用户的凭据是否按原样直接发送到服务器,还是在通过网络发送之前进行了哈希处理?如果它们被散列,我如何获得/生成此哈希以便在连续的身份验证中重用?

Exchange Server是否发送某种可以在以后重复使用的身份验证令牌(永远,直到密码更改或失效)?

如果您知道该问题的解决方案,这些问题的答案无法解决,请改为提供.

c# exchange-server exchangewebservices

12
推荐指数
2
解决办法
1908
查看次数

如何创建多个摩纳哥 JavaScript 编辑器,使它们不共享全局命名空间?

我希望一个页面上有多个 Monaco 编辑器,但每个编辑器都有自己的一组全局变量。在一个编辑器中创建的变量不应该在另一个编辑器中作为类型使用。

我尝试过设置monaco.languages.typescript.javascriptDefaults.setCompilerOptions({isolatedModules: true}),但这似乎并没有影响这些共享的全局类型。

如何创建多个 monaco javascript 编辑器,以便它们不共享全局命名空间?

// set up code for the Monaco Playground:
const container = document.getElementById("container");
const container1 = document.createElement("div");
const container2 = document.createElement("div");
container1.style.height="200px";
container1.style.border = "solid 2px black";
container1.style.marginBottom = "16px";
container2.style.height="200px";
container2.style.border = "solid 2px black";
container.appendChild(container1);
container.appendChild(container2);



// actual code:
monaco.editor.create(container1, {
    model: monaco.editor.createModel(`const abc = 123;`,
        "javascript",
        monaco.Uri.parse("js:editor1.js")
    )
});

monaco.editor.create(container2, {
    model: monaco.editor.createModel(
        "const value = abc; // should be typed as `any`, but is typed as …
Run Code Online (Sandbox Code Playgroud)

javascript monaco-editor

11
推荐指数
1
解决办法
2954
查看次数

window.onbeforeunload可能会多次触发

仅仅因为你没有看到使用功能并不意味着它没用.

Stack Exchange网络,GMail,Grooveshark,Yahoo!Mail和Hotmail使用onbeforeunload提示来阻止/警告用户在开始编辑内容后离开页面.哦,是的,几乎每个接受可保存用户输入数据的桌面程序都使用这种提示用户离开前的UX模式.


我有一个与此类似的功能:

window.onbeforeunload = function(){
    // only prompt if the flag has been set... 
    if(promptBeforeLeaving === true){
        return "Are you sure you want to leave this page?";
    }
}
Run Code Online (Sandbox Code Playgroud)

当用户尝试离开页面时,浏览器会向他们显示离开或停留在页面上的选项.如果用户选择"保留此页面选项",然后在页面完全卸载之前再次快速单击链接,则会再次触发对话框.

这个问题有什么万无一失的解决方案吗?


注意:以下不是解决方案:

var alreadyPrompted = false;
window.onbeforeunload = function(){
    // only prompt if the flag has been set... 
    if(promptBeforeLeaving === true && alreadyPrompted === false){
        alreadyPrompted = true;
        return "Are you sure you want to leave this page?";
    }
}
Run Code Online (Sandbox Code Playgroud)

因为用户可能会选择"留在页面上"选项,这将导致将来onbeforeunloads停止工作.

javascript jquery onbeforeunload

9
推荐指数
1
解决办法
1万
查看次数

禁用JavaScript所需的验证

我有一个创建表单来创建一个对象.如果选中了复选框并且标记为必需(通过模型中的属性),则创建模型具有一些仅可见的属性(.hide,.show()).

不幸的是,如果未选中该复选框,则会对隐藏的属性执行所需的验证.

如何禁用此属性所需的验证?

我尝试将input元素的data-val属性设置为false,但这不起作用.

有点想法吗?

在此先感谢Tobias

更新:

这是java脚本代码.data-val属性设置为false.似乎验证不关心这个属性.还有data-val-required属性,但有一个我无法备份的文本.

$(function () {
                $("#MyCheckbox")
                    .change(function () {
                        if (this.checked) {
                            $("#divWithChildProperties [data-val]").attr("data-val", true);
                            $("#divWithChildProperties ").show();
                        }
                        else {
                            $("#divWithChildProperties [data-val]").attr("data-val", false);
                            $("#divWithChildProperties ").hide();
                        }
                    })
            });
Run Code Online (Sandbox Code Playgroud)

javascript validation unobtrusive-javascript asp.net-mvc-3

9
推荐指数
2
解决办法
4万
查看次数