随着桌面多核CPU的兴起,多线程技能将成为程序员的宝贵资产.您是否可以为希望了解线程编程的程序员推荐一些好的资源(书籍,教程,网站等)?
我有一个旧的应用程序,其用户密码存储在数据库中,带有MD5哈希.我想用SHA-2系列中的东西替换它.
我想到了两种可能的方法来实现这一点,但两者看起来都很笨重.
1)添加一个布尔"标志"字段.用户在此之后第一次进行身份验证时,使用SHA密码哈希替换MD5密码哈希,并设置该标志.然后我可以检查标志以查看密码哈希是否已被转换.
2)添加第二个密码字段以存储SHA哈希.用户第一次在此之后进行身份验证,使用SHA散列密码并将其存储在新字段中(可能同时删除其MD5哈希值).然后我可以检查SHA字段是否有值; 这基本上成了我的旗帜.
在任何一种情况下,对于不经常登录的任何用户,MD5身份验证都必须保留一段时间.任何不再活动的用户永远不会切换到SHA.
有一个更好的方法吗?
我正在尝试使用jQuery格式化代码块,特别是在<pre>标记内添加<code>标记:
$(document).ready(function() {
$("code").wrapInner("<pre></pre>");
});
Run Code Online (Sandbox Code Playgroud)
Firefox正确应用格式,但IE将整个代码块放在一行上.如果我添加提醒
alert($("code").html());
Run Code Online (Sandbox Code Playgroud)
我看到IE已在pre标签中插入了一些额外的文字:
<PRE jQuery1218834632572="null">
Run Code Online (Sandbox Code Playgroud)
如果我重新加载页面,jQuery后面的数字会改变.
如果我使用wrap()而不是wrapInner(),在<pre>外面包装<code>标签,IE和Firefox都能正确处理它.但是不应该在里面<pre>工作吗? <code>
我更喜欢使用,wrapInner()因为我可以在<pre>标签中添加一个CSS类来处理所有格式,但是如果我使用wrap(),我必须将<pre>标签中的页面格式化CSS和标签中的文本/字体格式<code>,或Firefox和IE都窒息了.这不是什么大不了的事,但我想尽量保持简单.
有人遇到过这种情况么?我错过了什么吗?
编译成更快的代码:"ans = n*3"或"ans = n +(n*2)"?
假设n是int或long,它是在现代Win32 Intel盒子上运行的.
如果涉及一些解除引用,这会有所不同,也就是说,哪些更快?
long a; long *pn; long ans; ... *pn = some_number; ans = *pn * 3;
要么
ans = *pn+(*pn*2);
或者,它是否需要不用担心,因为优化编译器在任何情况下都可能解释这一点?
我正在尝试使用CS-Script,我的问题是,每次运行脚本时,控制台窗口都会在脚本退出时自动关闭.我怎样才能防止这种情况发生?
我正在更新一些不能正确处理用户输入的遗留代码.该代码确实进行了最少量的清理,但未涵盖所有已知威胁.
我们的新代码使用参数化查询.据我了解,查询是预编译的,输入被简单地视为无法执行的数据.在这种情况下,没有必要进行消毒.是对的吗?
换句话说,如果我在这个遗留代码中参数化查询,是否可以消除它当前的清理工作?或者我在参数化之上缺少一些额外的消毒效益?
c ×1
c# ×1
c++ ×1
concurrency ×1
database ×1
hash ×1
html ×1
javascript ×1
jquery ×1
md5 ×1
optimization ×1
passwords ×1
performance ×1
sanitization ×1
scripting ×1
sha ×1
sql ×1