和我一起打击弱密码哈希.
PBKDF2密码哈希应该包含salt,迭代次数和哈希本身,以便以后验证.对于PBKDF2密码哈希,是否有标准格式,如RFC2307的{SSHA}?BCRYPT很棒,但PBKDF2更容易实现.
显然,没有规范.所以这是我的规格.
>>> from base64 import urlsafe_b64encode
>>> password = u"hashy the \N{SNOWMAN}"
>>> salt = urlsafe_b64decode('s8MHhEQ78sM=')
>>> encoded = pbkdf2_hash(password, salt=salt)
>>> encoded
'{PBKDF2}1000$s8MHhEQ78sM=$hcKhCiW13OVhmLrbagdY-RwJvkA='
Run Code Online (Sandbox Code Playgroud)
更新:http://www.dlitz.net/software/python-pbkdf2/定义crypt()替换.我更新了我的小规格以匹配他,除了他的开头$p5k2$而不是{PBKDF2}.(我需要远离其他LDAP风格的{SCHEMES}).
这是{PBKDF2},迭代的在小写十六进制数,$中,urlsafe_base64编码的盐,$以及urlsafe_base64编码的PBKDF2输出.salt应该是64位,迭代次数应该至少为1000,具有HMAC-SHA1输出的PBKDF2可以是任意长度.在我的实现中,默认情况下总是20个字节(SHA-1哈希的长度).
在通过PBKDF2发送之前,密码必须编码为utf-8.没有关于它是否应该归一化为Unicode的NFC的说法.
iterations与{SSHA}相比,这种方案应该比蛮力更加昂贵.
编辑!!!- 当我创建一个新对象时,将值转换为字符串似乎工作正常,但是当我尝试编辑现有对象时,它不允许它.
所以我在我的一个Decimal模型中有一个十进制字段(3,2)
当我查询所有这些对象并尝试设置此字段时:
fieldName = 0.85
Run Code Online (Sandbox Code Playgroud)
要么
fieldName = .85
Run Code Online (Sandbox Code Playgroud)
它会抛出一个混乱,"无法将float转换为DecimalField,尝试首先转换为字符串"...
那么我做:
fieldName = str(0.85)
Run Code Online (Sandbox Code Playgroud)
同样的错误.
我甚至尝试过:
fieldName = "0.85"
Run Code Online (Sandbox Code Playgroud)
同样的错误.我在这里遇到某种框架错误,或者是什么?请注意,当我实际进入Django Admin并手动编辑对象时,它工作正常.
我在Python 2.6上运行Django 1.1
我的应用程序中有NSTableView.现在说是8列乘48行.
我有一个函数运行特定的特定列,以查看每个单元格中的值是否大于某个值.如果是的话,我希望应用程序突出显示该行.
我做了一些阅读,我仍在寻找函数调用或进程,让我提取单元格/行/或矩形,让我改变颜色.
改变细胞颜色的功能和步骤是什么?
我一直在我的本地机器上玩git,一切都有意义,直到它涉及到一个远程和多个开发人员,我开始感到困惑.
我的目标是建立一个"半公共"开发站点,一组4人可以工作,并在现场准备时将更改推送到现场.我们需要将dev站点放在公共Web服务器上,以便我们可以在推送更改之前获得批准.安全性并不是一个大问题,所以我打算只使用一个简单的.htaccess来限制访问.并非所有的更改都需要获得批准,但我希望开发者网站保持最新状态.
最大的挑战是我们4个人中有2个是设计师,所以改变和推动它的整个过程需要快速而简单.它们习惯于对网站进行更改.我现在不想用键盘快捷键做他们正在做的10步过程.
有什么建议?
问候.
想象一下,你已经获得了一个字符串(来自某个你无法控制的地方).在该字符串中是十进制数.您希望将逗号(即:将1234567.89转换为1,234,567.89)添加到该数字,同时保持整个字符串不变.数字前的货币符号会有所不同,但逗号格式不必因文化而异.
在.NET中有一种简单的方法吗?
如果没有一个简单的方法,我将进一步详细说明我计划做的事情.我们可以使用string.Substring()来获取数字,因为它总是在一些静态文本之间.例如:
我们的字符串
string s1 = "Blah Blah Blah. Total price: $1234567.89; Blah Blah Blah Blah"
Run Code Online (Sandbox Code Playgroud)
我们可以得到这样的价格:
int start = s1.IndexOf("Total price: ") + 13;
int length = s1.IndexOf(";") - start;
string trim = s1.Substring(start, length);
Run Code Online (Sandbox Code Playgroud)
抓住货币角色,剩下的就是:
char curr = trim[0];
string sAmount = s1.Substring(1, s1.Length);
Run Code Online (Sandbox Code Playgroud)
现在我们可以格式化小数:
decimal dAmount;
if (decimal.TryParse(sAmount, out dAmount))
{
string formattedPrice = curr + dAmount.ToString("N2");
Console.WriteLine(formattedPrice);
}
Run Code Online (Sandbox Code Playgroud)
现在我可以将生成的字符串插回到我应该去的原始字符串中.写这个问题的关键在于,这对我来说非常讨厌,我希望找到一个更好的方法来解决这个问题.
谢谢你的时间.我将在接下来的一个小时内对此进行更新,并将在该时间内选择答案.
好吧,我们说这个c#代码:
public override void Write(XDRDestination destination)
{
destination.WriteInt(intValue);
destination.WriteBool(boolValue);
destination.WriteFixedString(str1, 100);
destination.WriteVariableString(str2, 100);
}
Run Code Online (Sandbox Code Playgroud)
IL:
.method public hidebysig virtual instance void
Write(class [XDRFramework]XDRFramework.XDRDestination destination) cil managed
{
// Code size 53 (0x35)
.maxstack 8
IL_0000: ldarg.1
IL_0001: ldarg.0
IL_0002: call instance int32 LearnIL.Test1::get_intValue()
IL_0007: callvirt instance void [XDRFramework]XDRFramework.XDRDestination::WriteInt(int32)
IL_000c: ldarg.1
IL_000d: ldarg.0
IL_000e: call instance bool LearnIL.Test1::get_boolValue()
IL_0013: callvirt instance void [XDRFramework]XDRFramework.XDRDestination::WriteBool(bool)
IL_0018: ldarg.1
IL_0019: ldarg.0
IL_001a: call instance string LearnIL.Test1::get_str1()
IL_001f: ldc.i4.s 100
IL_0021: callvirt instance void [XDRFramework]XDRFramework.XDRDestination::WriteFixedString(string,
uint32) …Run Code Online (Sandbox Code Playgroud) 我知道我可以像这样选择多行:
select * FROM table WHERE id in (1, 2, 3, 10, 100);
Run Code Online (Sandbox Code Playgroud)
我按顺序返回结果: 1, 2, 3, 10, 100
但是,如果我需要按特定顺序返回结果怎么办?当我尝试这个:
select * FROM table WHERE id in (2, 100, 3, 1, 10);
Run Code Online (Sandbox Code Playgroud)
我仍然以相同的顺序返回结果: 1, 2, 3, 10, 100
有没有办法按照我要求的确切顺序返回结果?
(由于站点的设置方式存在限制,不允许我使用其他字段值进行ORDER BY)
我知道在PowerShell中构建Web客户端的一些好方法:.NET类System.Net.WebClient和System.Net.HttpWebRequest,或COM对象Msxml2.XMLHTTP.据我所知,唯一一个允许您访问数字状态代码(例如200,404)的是最后一个COM对象.我遇到的问题是我不喜欢它的工作方式,我不喜欢依赖COM对象.我也知道,由于安全漏洞等原因,微软将不时决定杀死COM对象(ActiveX kill bits).
还有其他.NET方法我错过了吗?状态代码是否是其他两个对象之一,我只是不知道如何获取它?
我有一个查询,我在C#.cs文件中运行:
DataSet ds = db.ExecuteDataSet(System.Data.CommandType.Text, "SELECT count(*) as counter FROM [Table] where [Table].[Field] = 'test'");
Run Code Online (Sandbox Code Playgroud)
我想要做的是在这个查询中检索"counter"的值并"返回"它作为我的函数返回值.
我怎样才能做到这一点?
我有一个ASP.NET应用程序,其中有几个ASP.NET按钮和几个纯HTML按钮.只要有用户点击输入的文本框,ASP.NET按钮就会尝试提交表单.
我知道我可以改变defaultButton,但我不希望有任何默认按钮.我只是想要它,所以当用户按下输入时它不会做任何事情.
我试过设置defaultButton为空白,但这似乎不起作用.按Enter键时,如何阻止ASP.NET按钮提交表单?