小编pc1*_*ter的帖子

为什么我的.net计算的MD5哈希值不等于在网站上计算的哈希?

我试图在JavaScript和.Net中生成等效的MD5哈希值.还没有做过,我决定使用第三方计算 - 这个网站上的"密码"这个词.我稍后会添加盐,但目前,我无法获得.net版本以匹配网站的哈希:

5f4dcc3b5aa765d61d8327deb882cf99
Run Code Online (Sandbox Code Playgroud)

我猜它是一个编码问题,但我已经尝试了8种不同的方法来计算.Net中的MD5哈希,并且它们都没有我在JavaScript(或从网站)中获得的.这个MSDN示例是我尝试过的方法之一,这导致我通常收到的这个哈希:

7c6a180b36896a0a8c02787eeafb0e4c
Run Code Online (Sandbox Code Playgroud)

编辑:可悲的是,我不小心为两个不同的实现提供了不同的源字符串.EBSAK.: - /仍然有兴趣听听你对后续行动的回答.

额外问题:什么编码/格式最适合在数据库中存储散列值?

.net security hash cryptography

5
推荐指数
1
解决办法
4173
查看次数

脱机进行用户身份验证的最佳模式是什么?

我正在构建一个客户端 - 服务器应用程序的身份验证,我收到的一些反馈是我应该将哈希计算留给服务器(它最初实现为让客户端接收哈希值,从客户端计算哈希值)输入密码,并进行比较).这似乎有道理,但我有一个问题 - 如何验证离线用户

例如,如果我部署到没有Internet访问权限的移动设备,那么处理身份验证的最安全方法是什么?

我看到它的方式,我将不得不要么允许客户端接收的哈希+盐的任何信息,或使用一个单独的PIN /密码,并允许客户端接收的哈希+盐的那个密码.

我赞成后者,因为它似乎限制了攻击向量 - 如果移动设备受到攻击,那么整个系统的安全性(例如所有经过网络验证的部分)保持不变.

我最好的选择和考虑是什么?

security authentication hash

5
推荐指数
1
解决办法
3012
查看次数

在JavaScript中替换字符串中的一系列字符的最佳方法是什么

我正在努力提高一个函数的性能,该函数接受XML字符串并在返回字符串之前替换某些字符(编码).该函数受到攻击,因此尽可能快地运行非常重要.USUAL案例是没有任何字符存在 - 所以我想特别优化它.正如您将在示例代码中看到的那样,要替换的字符串很短,而且相对较少.源字符串通常很短(例如10-20个字符)但可能更长(例如200个字符左右).

到目前为止,我已经确保正则数据库是预编译的,并且我已经消除了嵌套函数,这会降低操作速度(此时部分毫秒很重要.)

var objXMLToString = new XMLToStringClass();
function XMLToStringClass(){
    this.tester= /\\34|\\39|\\62|\\60|\\13\\10|\\09|\\92|&amp/;
    this.replacements=[];
    var self=this;
    function init(){        
        var re = new regexReplacePair(/\\34/g,'"');
        self.replacements.push(re);
        re = new regexReplacePair(/\\39/g,"'");
        self.replacements.push(re);
        re = new regexReplacePair(/\\62/g,">");
        self.replacements.push(re);
        re = new regexReplacePair(/\\60/g,"<");
        self.replacements.push(re);
        re = new regexReplacePair(/\\13\\10/g,"\n");
        self.replacements.push(re);
        re = new regexReplacePair(/\\09/g,"\t");
        self.replacements.push(re);
        re = new regexReplacePair(/\\92/g,"\\");
        self.replacements.push(re);
        re = new regexReplacePair(/\&amp;/g,"&");       
        self.replacements.push(re);     
    }
    init();
}


function regexReplacePair(regex,replacementString){
    this.regex = regex;
    this.replacement = replacementString;
}

String.prototype.XMLToString = function() {
        newString=this;
        if(objXMLToString.tester.test(this)){
            for (var x …
Run Code Online (Sandbox Code Playgroud)

javascript regex

5
推荐指数
2
解决办法
1019
查看次数

要求使用Visual Studio Professional而不是标准,最常见的功能是什么?

我担心我对VS 2008的审判很快就会结束,除非客户为此付出代价,否则我可能会为此付出一些现金.我一直在查看比较图表来比较VS专业版和标准版,到目前为止我觉得我很安全.我想听听你将会遗漏哪些最重要的功能.

当然,你不知道我的情况的所有细节 - 但请根据你认为最重要的事情回答.

visual-studio-2008 visual-studio

3
推荐指数
1
解决办法
235
查看次数

什么DBMS适合于即使在"野外"安装时保持模式私有

我有一个连接到数据库服务器的应用程序服务器.我希望能够为用户提供安装程序,并且在适度的舒适度下,相信数据库架构是安全的.

我明白,在不控制安装它的计算机的情况下,我必须接受一些风险 - 拥有正确工具和知识的坚定的人可以直接查看内存并提取信息.

最初我认为我的重点领域只是将凭证添加到安装程序,而不必在十六进制编辑器中轻松查看.

然而,当我开始研究时,我了解到对于PostGreSQL,即使我以静默方式安装数据库并且不向用户提供凭据 - 他们也可以简单地更改基于文本的配置文件(pg_hba.conf),以及重新启动服务器,无需凭据即可完全访问数据库.

这种情况是否在其他DBMS中得到保护?在这种情况下,大多数商业产品如何保护其模式?大多数产品会使用嵌入式数据库


编辑:我认为(可能错误的是)某些产品依赖于用户从未直接触及的数据库.我当然永远不会看到它们,因为它们是以用户不需要的方式设计的 - 可能使用嵌入式数据库.

database security installer reverse-engineering

0
推荐指数
1
解决办法
285
查看次数