我正在学习Windows上的nodejs。 几个模块全局安装在npm.cmd中,nodejs无法find已安装的模块。 以玉为例, npm install jade -g Jade安装在目录"C:\Program Files (x86)\nodejs\node_modules" ,但是下面的代码将会失败并显示"Cannot find module 'jade'"错误, var jade = require('jade'); 但是,在本地安装了jade的情况下,代码将会成功运行(在npm中没有-g选项)。 我不想使用本地安装的模块,这是浪费磁盘空间对我来说,有人可以帮助我使全球安装的模块在Windows上工作?
在Bash中,testing数组是否包含特定值的最简单方法是什么? 编辑 :在答案和评论的帮助下,经过一些testing,我想出了这个: function contains() { local n=$# local value=${!n} for ((i=1;i < $#;i++)) { if [ "${!i}" == "${value}" ]; then echo "y" return 0 fi } echo "n" return 1 } A=("one" "two" "three four") if [ $(contains "${A[@]}" "one") == "y" ]; then echo "contains one" fi if [ $(contains "${A[@]}" "three") […]
我看到,为了使用不是线程安全的对象,我们用这样的一个锁来包装代码: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } 那么当多个线程访问相同的代码时会发生什么(让我们假设它正在ASP.NET Web应用程序中运行)。 他们排队吗? 如果是的话,他们会等多久? 由于使用锁,对性能的影响是什么?
如果我在C ++应用程序中全局声明一个数据结构,它会消耗堆栈内存还是堆内存? 例如 struct AAA { …/…/. ../../.. }arr[59652323];
我正在通过套接字接收XMLstring,并希望将它们转换为C#对象。 消息的forms是: <msg> <id>1</id> <action>stop</action> </msg> 我是.Net新手,不确定是否执行此操作的最佳做法。 我之前使用JAXB for Java,并不确定是否有类似的东西,或者如果以不同的方式处理。
我使用了大量的列表和数组,但是我还没有碰到过一个场景,其中的数组列表不能像链表一样容易使用。 我希望有人能给我一些关于链表何时更好的例子。
我正在寻找一种方法来确定用户是否通过设置启用或禁用了我的应用程序的推送通知。
我有一个定义了templateUrl的AngularJS指令。 我正在用Jasmine进行unit testing。 我的茉莉花JavaScript看起来像下面,根据这个build议: describe('module: my.module', function () { beforeEach(module('my.module')); describe('my-directive directive', function () { var scope, $compile; beforeEach(inject(function (_$rootScope_, _$compile_, $injector) { scope = _$rootScope_; $compile = _$compile_; $httpBackend = $injector.get('$httpBackend'); $httpBackend.whenGET('path/to/template.html').passThrough(); })); describe('test', function () { var element; beforeEach(function () { element = $compile( '<my-directive></my-directive>')(scope); angular.element(document.body).append(element); }); afterEach(function () { element.remove(); }); it('test', […]
结论: SHA-1与任何对付原像攻击的攻击一样安全,但它易于计算,这意味着安装暴力破解或字典攻击更容易。 (对于像SHA-256这样的后继者也是如此)。根据具体情况,被devise为计算成本高昂的散列函数(比如bcrypt)可能是更好的select。 有些人大肆宣传“SHA-1已经破产”这样的言论,所以我试图去理解这个意思。 假设我有一个SHA-1密码哈希数据库,攻击者使用最新的SHA-1破解algorithm和一个拥有100,000台计算机的僵尸networking访问它。 (控制10万台家用电脑就意味着他们每秒可以做10 ^ 15次左右的操作。)他们需要多less时间 找出任何一个用户的密码? 找出给定用户的密码? 找出所有用户的密码? find一种方式作为用户之一login? find一种方式作为特定的用户login? 如果密码被腌制,这个变化如何? 腌制的方法(前缀,后缀,两者,还是像xor-ing更复杂的东西)的问题? 这是我目前的理解,一些谷歌search。 如果我误解了某些东西,请在答案中予以纠正。 如果没有盐,彩虹攻击会立即find所有的密码(除了非常长的密码)。 如果有足够长的随机盐,找出密码的最有效的方法是暴力或字典攻击。 冲突和原像攻击都不能帮助find真正的密码,所以对SHA-1的encryption攻击在这里没有任何帮助。 甚至使用什么algorithm都不算什么 – 甚至可以使用MD5或MD4,密码也是一样安全的(因为计算SHA-1散列速度较慢,所以稍有不同)。 为了评估“同样安全”的安全性,我们假设一次sha1运行需要1000次操作,并且密码包含大写,小写和数字(即60个字符)。 这意味着攻击者每天可以testing10 15 * 60 * 60 * 24/1000〜= 10 17的潜在密码。 对于暴力攻击,这意味着要在3个小时内testing所有密码,最多9个字符,一周最多10个字符,一年最多11个字符。 (每增加一个字符,就要花费60倍)字典攻击要快得多(甚至一台计算机的攻击者可能会在几个小时内就把它拉出来),但是只能find弱密码。 要以用户身份login,攻击者不需要find确切的密码; find一个导致相同散列的string就足够了。 这被称为第一次原像攻击。 据我所知,没有对SHA-1的原像攻击。 (暴力攻击需要2 160次操作,这意味着我们的理论攻击者需要10年30年的时间才能完成,理论可能性的限制大约是60次 ,攻击将需要几年时间)。 对减less的SHA-1版本的影响可以忽略不计(对于减less的SHA-1使用44步而不是80步,攻击时间从2 160次降到2 157次 )。 对SHA-1的碰撞攻击在理论上是可能的( 我发现的最好的结果是从2 80到2 52 ),但是对于密码哈希值,即使没有腌制,也是无用的。 简而言之,使用SHA-1存储密码看起来非常安全。 我错过了什么? 更新: […]
我正在Google Chrome的网页上工作。 它使用以下样式正确显示。 table { display: table; border-collapse: separate; border-spacing: 2px; border-color: gray; } 请注意,我没有定义这些样式。 在Chrome开发工具上,它表示“用户代理样式表”代替CSS文件名。 现在,如果我提交一个表单,并发生一些validation错误,我得到以下样式表: table { white-space: normal; line-height: normal; font-weight: normal; font-size: medium; font-variant: normal; font-style: normal; color: -webkit-text; text-align: -webkit-auto; } table { display: table; border-collapse: separate; border-spacing: 2px; border-color: gray; } 这些新款式的字体大小令人不安。 有什么办法强制我的样式表,如果可能的话,完全覆盖Chrome的默认样式表?