我期待加密数据.我想基于密码生成加密密钥,以及一些移动值,如时间.目标是进行密钥更改,但让知道密码的任何人都能够解密.这发生在C#中.我使用以下代码来哈希密码.
private static string GetPasswordHash(string password)
{
TimeSpan span = (DateTime.UtcNow - new DateTime(1900, 1, 1));
string result = Convert.ToInt32(span.TotalHours).ToString();
result += password;
result += Convert.ToInt32(span.TotalDays).ToString();
result = Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.ASCII.GetBytes(result)));
return result;
}
Run Code Online (Sandbox Code Playgroud)
然后我使用该哈希,加上盐来生成密钥.
Rfc2898DeriveBytes rdb = new Rfc2898DeriveBytes(GetPasswordHash(password), salt);
rdb.IterationCount = 1000;
RijndaelManaged rm = new RijndaelManaged();
rm.KeySize = 256;
rm.Key = rdb.GetBytes(32);
rm.IV = rdb.GetBytes(16);
Run Code Online (Sandbox Code Playgroud)
我这样做的方式似乎有问题.有些计算机位于不同的时区,或者当我发送数据时小时计时,或者机器时间稍微偏离.有更好的建议吗?
有没有一种简便的方法以编程方式确定USB端口的速度(或版本)?我希望根据其最大带宽来控制发送到USB端口的数据的速度。
我有 2 个网站:一个用经典 asp 编写,另一个用 ASP.NET(1.1 框架)编写。这两个应用程序都使用登录机制根据共享数据库表验证用户凭据。到目前为止,密码都存储在 1 向 MD5 哈希中,这意味着如果人们丢失旧密码,则必须为其提供一个新生成的密码。我现在想改变这一点并使密码可解密。
我发现这个 Rijndael 代码与经典的 asp 一起使用:http : //www.frez.co.uk/freecode.htm#rijndael
但是我找不到 ASP.NET 的相同解决方案。我试过这个,但它给了我经典asp和ASP.NET代码之间不同的加密和解密结果:
If Not String.IsNullOrEmpty(TextBox1.Text) And Not String.IsNullOrEmpty(TextBox2.Text) Then
Dim password = TextBox1.Text
Dim key = TextBox2.Text
Dim keyGenerator = New Rfc2898DeriveBytes(key, 8)
Dim r = New RijndaelManaged
r.Mode = CipherMode.CBC
r.Padding = PaddingMode.Zeros
r.BlockSize = 256
r.KeySize = 256
r.FeedbackSize = 256
r.IV = keyGenerator.GetBytes(CType(r.BlockSize / 8, Integer))
r.Key = keyGenerator.GetBytes(CType(r.KeySize / 8, Integer))
Dim transform As ICryptoTransform = …Run Code Online (Sandbox Code Playgroud) 问题描述:
在你回答之前:
1)是的,事情需要这样
2)以下代码示例:
public partial class Form1 : Form
{
List<UserControl2> list;
public Form1()
{
InitializeComponent();
list = new List<UserControl2>();
for (int i = 0; i < 20; i++)
{
UserControl2 c = new UserControl2();
list.Add(c);
}
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (UserControl2 c in list)
userControl11.Controls.Add(c);
}
private void button1_Click(object sender, EventArgs e)
{
int y …Run Code Online (Sandbox Code Playgroud) 我想通过使用来阅读我的Gmail收件箱Google.GData.Client.dll.我该如何做到这一点?我想要一个示例程序.
foreach(PlayerBase p in Members)
{
p.Render();
}
Run Code Online (Sandbox Code Playgroud)
该Members列表包含类型FieldPlayer或的成员GoalKeeper.FieldPlayer并GoalKeeper继承自PlayerBase.当我打电话时p.Render(),我需要Render拨打适当的电话FieldPlayer或GoalKeeper.我怎么做?
谢谢
有办法做到以下几点吗?我看到属性参数必须是一个常量表达式,那么我将如何解决这个问题呢?如果我不想使用绑定将某些属性加载到datagridview中,那么下一个最佳替代方案是什么?
class TestObj
{
private bool isBrowsable = false;
[Browsable(isBrowsable)]
public string String1
{
get
{
return "Foo";
}
}
[Browsable(isBrowsable)]
public string String2
{
get
{
return "Baz";
}
}
}
Run Code Online (Sandbox Code Playgroud) 我使用它进行加密:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx
有没有办法可以预测加密文本的样子?我正在将加密的输出转换为文本,因此我可以将其存储在数据库中.
我只想确保数据库列的大小足够大.
我将文本输入限制为20个字符.
下面的代码是我悲伤的一个(三个)例子.这是一个简单的OpenFileDialog()调用,导致程序崩溃.在XP上,如果对话框保持打开几秒钟,则会发生崩溃.在Vista上,如果用户选择"我的电脑",则会发生崩溃.在VS2008中,调试器有时会捕获stackoverflowexception.如果我在第一行(新...)中设置了一个断点,vshost.exe会崩溃.如果我在ShowDialog()行放置一个断点,我会得到一个FatalExecutionEngineError.如果我在没有vshost的情况下编译,应用程序将运行直到随机崩溃(如在XP上 - 有一些时间).
还有另外两个打开的对话框可以打开不同类型的文件,这三个文件都具有相同的行为.类似的代码在我的其他项目中没有显示相同的行为.
线程公寓是单身.我试过设置ValidateNames = false.在大多数情况下,调试器正在脱离深层.
OpenFileDialog imageDlg = new OpenFileDialog();
imageDlg.Filter = "All Images|*.jpg;*.jpeg;*.png;*.tif;*.tiff;*.bmp|All Files|*.*|JPEGs (*.jpg)|*.jpg|PNGs (*.png)|*.png|TIFFs (*.tiff)|*.tiff|TIFFs (*.tif)|*.tif|BMPS (*.bmp)|*.bmp";
imageDlg.Title = "Select Scan Image";
if (DialogResult.OK == imageDlg.ShowDialog())
{
updateImageDisplay();
}
Run Code Online (Sandbox Code Playgroud)
事件处理程序代码
//
// setScratchImageButton
//
this.setScratchImageButton.Location = new System.Drawing.Point(191, 15);
this.setScratchImageButton.Name = "setScratchImageButton";
this.setScratchImageButton.Size = new System.Drawing.Size(26, 23);
this.setScratchImageButton.TabIndex = 8;
this.setScratchImageButton.Text = "...";
this.setScratchImageButton.UseVisualStyleBackColor = true;
this.setScratchImageButton.Click += new System.EventHandler(this.setScratchImageButton_Click);
Run Code Online (Sandbox Code Playgroud)
代码叫
private void updateImageDisplay()
{
if (null != project.srcImage)
{
imageDisplay.SizeMode = PictureBoxSizeMode.Normal;
if (project.srcImage …Run Code Online (Sandbox Code Playgroud) 关于SO的大多数问题都涉及非虚假返回类型,但是我们正在就此开展一场火焰战,并希望了解社区的想法.
void DoSomething()
{
return; // Is this needed?
}
Run Code Online (Sandbox Code Playgroud)
从这个讨论中,看起来具有未定义行为的问题涉及非void返回类型的函数.void返回类型是否具有相同的未定义行为,还是仅在非void返回函数中?
我担心的是,这最终将成为一种不可靠的编码风格.但是,如果它也是void返回函数的未定义行为,那么我可以看到需要将它添加到编码标准中.如果对C和C++的答案不同,这也是可以的.
§6.6.3退货声明
2没有表达式的return语句只能用于不返回值的函数,即返回类型为void的函数,contrsuctor(12.1)或析构函数(12.4).
§6.6.3/ 2
流出函数末尾相当于没有值的返回; 这会导致值返回函数中的未定义行为.
c# ×8
encryption ×2
.net ×1
asp-classic ×1
asp.net ×1
attributes ×1
browsable ×1
c ×1
c++ ×1
cryptography ×1
g++ ×1
gcc ×1
gnu ×1
inheritance ×1
oop ×1
passwords ×1
performance ×1
polymorphism ×1
position ×1
properties ×1
rijndael ×1
scroll ×1
timezone ×1
usb ×1
winforms ×1