小编His*_*air的帖子

建议的哈希算法用于存储密码是什么?

鉴于MD5的已知弱点以及SHA1中讨论的最近(2009年5月)的弱点,新程序应该如何腌制和散列密码?

我见过SHA-256和SHA-512.

主要在Ruby on Rails中编程并使用PostgreSQL - 但其他语言和环境可能还需要计算密码哈希值.

encryption passwords hash

18
推荐指数
3
解决办法
8860
查看次数

如何在开发期间将Perl警告提升为致命错误?

在运行应用程序测试套件时,我想将所有Perl编译和运行时警告(例如"未初始化的变量"警告)提升为致命错误,以便我和其他开发人员调查并修复生成警告的代码.但我只想在开发和CI测试期间这样做.在生产中,警告应该保持警告状态.

我尝试了以下内容:在"t/lib"中我创建了一个模块TestHelper.pm:

# TestHelper.pm
use warnings FATAL => qw( all );
1;
Run Code Online (Sandbox Code Playgroud)

然后像这样调用测试套件:

$ PERL5LIB=$PERL5LIB:./t/lib PERL5OPT=-MTestHelper.pm prove -l t/*.t
Run Code Online (Sandbox Code Playgroud)

但是,这并没有达到预期所有致命错误警告的效果.我得到了正常的警告,但警告似乎没有被视为致命的.请注意,我的所有test.t脚本都有"使用警告"行; 在它们中 - 也许这超过了TestHelper.pm中的一个,因为"使用警告"具有本地范围?

相反,我做到了这一点:

# TestHelper.pm
# Promote all warnings to fatal 
$SIG{__WARN__} = sub { die @_; };
1;
Run Code Online (Sandbox Code Playgroud)

这有效,但有一个代码味道.我也不喜欢它在第一次警告时爆炸.我宁愿测试套件完全运行,记录所有警告,但测试状态最终失败,因为代码运行时出现警告.

有没有更好的方法来实现这个最终结果?

perl continuous-integration warnings unit-testing

13
推荐指数
2
解决办法
2234
查看次数

如何从外部程序更改Firefox的代理设置?

我见过一些能够修改Firefox代理设置的程序(例如Charles Web Developer Proxy).顺序是:

  1. Firefox正在运行,具有用户代理设置.
  2. 用户启动外部第三方应用程序
  3. 修改Firefox的代理设置,然后
  4. 用户退出第三方程序,
  5. Firefox恢复使用其原始代理设置运行.

假设外部应用程序正在记住旧代理设置并在退出时恢复它们如何读取和编写Firefox的代理设置?尝试使用谷歌搜索谷歌搜索但没有运气.

考虑的选项:

  • 编写新的用户首选项配置文件并启动浏览器的新实例.可行但不太正确 - 例如,Charles可以修改已经运行的浏览器的设置并在不重新启动的情况下恢复它们.
  • 写一个插件.可以编写一个Firefox插件,向外部提供某种IPC,然后处理Firefox首选项设置.事实上,我认为这可能是唯一的方法.禁用Charles'Firefox插件似乎无法动态修改首选项.

可能的资源

firefox proxy firefox-3

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