我是一个(接近完整的)初学者,这是我第一次尝试加密 - 实际上这可能是我第一次使用这个词了.
这是我的问题:对于非银行/军事,甚至是商业网络应用程序,选择用于密码的哈希函数的盐的正确方法是什么?
我可以轻松地为每个新用户生成一个伪随机盐,并在应用哈希函数之前将该盐附加到他们的pw.但是我仍然需要存储盐,所以大概任何能够访问哈希密码的人都会获得盐.
盐的好处只是让pw"更随机",因此打败了基于标准字典的彩虹表吗?
以下任何一个都是好的和实用的想法:
作为一个附带问题,在升级网站软件时更改盐渍哈希算法有多容易?现在感觉很噩梦.
我试图在这里进行一些非常动态的查询 - 最好不要在运行时调用编译器.
我有一个包含LINQ表达式的字符串,例如
var s = "from a in queryable where a.Type == 1 select a";
Run Code Online (Sandbox Code Playgroud)
如何从中获得由此产生的IQueryable或表达式?
我见过LINQPad和RavenDb都这样做,所以我确信有一种方法,我还没有找到它.
我有一个类似这样的.net应用程序(c#)
public partial class _Default : System.Web.UI.Page
{
#region initial variables setup
private static exam theExam;
#endregion
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
string userid = Request.Querystring["user"].ToString();
theExam = new exam(userid, "some values");
}
}
// rest of code.
Run Code Online (Sandbox Code Playgroud)
现在我的问题是,如果用户105登录了一个考试实例,那么创建了一个实例,并将其分配给顶部的静态声明.如果用户204然后从另一台计算机登录,那么即使在用户105的计算机上,顶部的静态对象是否仍然获得204的值?
我有一个项目是一个软件.所以我在我的项目中引用了该软件的DLL库,因此我可以通过他们的API编写代码并为软件制作一些不错的插件和扩展.
问题是该软件有多种版本:Enterprise,Lite,1.6版,1.7版,2.0版等.如果我希望我的项目适用于所有这些不同版本,我必须复制我的项目并重新指向DLL引用相应软件版本的DLL库(我现在正在这样做).这真的很烦人,因为我的代码库对于所有版本都是相同的,所以当我进行任何更新时,我必须同步所有重复的项目,所以我有每个软件版本的构建.
有没有办法让我可以拥有一个项目,但在我构建之前,选择要构建的软件版本?我想我正在寻找一种简单的方法来更新项目中DLL引用的路径.任何想法或提示将不胜感激.
(如果有帮助,我可以使用Visual Studio 2008或2010和.NET 3.5或4.0)
我正在尝试使用javax.xml.xpath包在具有多个名称空间的文档上运行XPath表达式,并且我遇到了愚蠢的性能问题.
我的测试文档来自一个真实的生产示例.它大约是600k的xml.该文档是一个相当复杂的Atom提要.
我意识到我正在使用XPath做的事情可以在没有的情况下完成.然而,在其他非常低劣的平台上实现相同的实现表现得非常好.现在,重建我的系统不使用XPath超出了我所能做的范围.
我的测试代码是这样的:
void testXPathPerformance()
{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(loadTestDocument());
XPathFactory xpf = XPathFactory.newInstance();
XPath xp = xpf.newXPath();
NamespaceContext names = loadTestNamespaces();
//there are 12 namespaces in names. In this example code, I'm using
//'samplens' instead of the actual namespaces that my application uses
//for simplicity. In my real code, the queries are different text, but
//precisely the same complexity.
xp.setNamespaceContext(names);
NodeList nodes = (NodeList) xp.evaluate("/atom:feed/atom:entry",
doc.getDocumentElement(), XPathConstants.NODESET);
for(int i=0;i<nodes.getLength();i++) …Run Code Online (Sandbox Code Playgroud) 我希望HTTP响应从现在起24小时后过期(这意味着浏览器直到明天才会对该URL发出任何请求).但是,如果请求在到期后明天重新发出,我想确保浏览器将发送正确的请求标头,以便服务器发送304而不是强制客户端重新下载整个响应主体,如果它没有在服务器上没有改变.而且我希望304也会在24小时后过期.
首先,这个场景可能吗?或者我必须在Expiration风格的缓存和304风格的缓存之间做出选择,但不是两者都有?如果可能的话,那么正确的响应头(初始响应和后续的304)是什么?
如果经常发生,答案会根据浏览器类型/版本而有所不同,那么哪些标题适用于哪些浏览器 - 以及哪些浏览器无法完成我想要的操作?我只对目前使用的最常见的浏览器感兴趣(例如IE6 +,FF3 +,Chrome最新版,Safari最新版)?
如果已经在SO上询问了这个答案,我会道歉 - 我搜索了一会儿,然后空白了.
澄清:我问的是这个问题,因为我正在组建一个自动测试套件来验证,无论服务器平台如何,Web应用程序正在生成正确的HTTP标头,以生成客户端缓存行为,我们希望我们的所有Web应用程序都可以有.所以我对如何配置Apache/IIS/PHP/Rails/Django/JSP/ASP.NET /等不感兴趣(至少现在).生成正确的标题.我只想知道,在HTTP层,只有正确的标题是什么.
更新:我发现这个问题回答了我的部分问题.根据RFC 2616 10.3.5,它说,我应该在服务器返回的304s中包含一个Expires:或Cache-Control: max-age标题.这绝对是理想的行为.
然而,这个问题没有回答的是这种符合RFC的方法是否适用于现有的流行浏览器,尤其是IE6/7/8,它们是通常的标准兼容罪魁祸首,还有IE9,FF4 +,最新Chrome和最新版本我们的应用程序也必须支持的Safari.如果这些浏览器中的任何一个不符合RFC的要求,我可以使用变通方法吗?
我真的希望有人可以建议从隐藏的div显示谷歌地图.
我有一个谷歌地图,如果他们点击一个链接,即显示地图,我想向用户显示.
将地图放在隐藏的div中根本不起作用,所以我将地图-1000px隐藏在位置绝对css值上.
这给了我更好的结果,但是当我使用css将地图带回来时,只有它的显示.
http://screencast.com/t/MTMyOGZmNW
在演出节目之后,有人能给我建议让隐藏地图变得可见的最佳方法吗?
希望有人可以提供建议.
谢谢
我有一个List <User>集合,并希望使用开始和结束索引进行内存中分页.
最好的方法是什么?
无论如何从CDN加载jQuery-UI主题,但有本地回退?类似于这里的javascript后备大纲?谷歌托管CDN退回
我在switch case语句中创建了一个AlertDialog,该语句位于for循环中.在AlertDialog上有一个EditText用于输入.当弹出框时,for循环在后台运行.我希望循环等到发送输入继续.以下是AlertDialog的代码:
for(int i=0; i < code.length(); i++){
switch(code.charAt(i)){
case '+':
bytes[index]++;
break;
case '-':
bytes[index]--;
break;
case '<':
if(index > 0){
index--;
}else{
Toast.makeText(this, "Warning: Index is already at zero", Toast.LENGTH_LONG).show();
}
break;
case '>':
if(index <= 500){
index++;
}else{
Toast.makeText(this, "Warning: Maximum bytes reached", Toast.LENGTH_LONG).show();
}
break;
case ']':
if(loop == -1){
Toast.makeText(this, "ERROR: Close bracket before an open bracket!", Toast.LENGTH_LONG).show();
errors++;
break;
}else{
if(bytes[index] == 0){
loop = -1;
}else{
i = loop;
}
break;
}
case …Run Code Online (Sandbox Code Playgroud) c# ×4
android ×2
.net ×1
asp.net ×1
caching ×1
cdn ×1
collections ×1
css ×1
encryption ×1
google-maps ×1
hash ×1
hidden ×1
http ×1
http-headers ×1
java ×1
jquery-ui ×1
linq ×1
msbuild ×1
object ×1
performance ×1
security ×1
static ×1
xpath ×1