小编SwD*_*n81的帖子

您将如何生成可重复的加密密钥?

我期待加密数据.我想基于密码生成加密密钥,以及一些移动值,如时间.目标是进行密钥更改,但让知道密码的任何人都能够解密.这发生在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)

我这样做的方式似乎有问题.有些计算机位于不同的时区,或者当我发送数据时小时计时,或者机器时间稍微偏离.有更好的建议吗?

c# encryption passwords timezone rijndaelmanaged

4
推荐指数
1
解决办法
1052
查看次数

如何确定USB端口的速度?

有没有一种简便的方法以编程方式确定USB端口的速度(或版本)?我希望根据其最大带宽来控制发送到USB端口的数据的速度。

c# usb performance

4
推荐指数
1
解决办法
2895
查看次数

经典asp和ASP.NET之间的密码加密/解密

我有 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)

asp.net cryptography rijndael asp-classic rijndaelmanaged

4
推荐指数
1
解决办法
6588
查看次数

滚动"移动"时,控件的设置位置似乎不起作用(c#,winforms)

问题描述:

  • 创建"自定义控件".将其属性AutoScroll设置为"true".将它的bg颜色更改为绿色.
  • 创建第二个"自定义控件".将它的bg颜色更改为红色.
  • 在主窗体上第一个自定义控件
  • 在代码中创建20个第二个控件的实例
  • 在按钮中添加一个按钮:
    • 在代码中设置它们在循环中的位置,如c.Location = new Point(0,y);
    • y + = c.Height;
  • 运行App.
  • 按下按钮
  • 滚动容器
  • 再次按下按钮,有人可以解释一下为什么0不是容器形式的开始?!控件被转移......

在你回答之前:

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)

c# scroll position winforms

4
推荐指数
1
解决办法
3385
查看次数

阅读Gmail收件箱

我想通过使用来阅读我的Gmail收件箱Google.GData.Client.dll.我该如何做到这一点?我想要一个示例程序.

c# google-data-api

4
推荐指数
1
解决办法
2万
查看次数

输入铸造问题

foreach(PlayerBase p in Members)
{
    p.Render();
}
Run Code Online (Sandbox Code Playgroud)

Members列表包含类型FieldPlayer或的成员GoalKeeper.FieldPlayerGoalKeeper继承自PlayerBase.当我打电话时p.Render(),我需要Render拨打适当的电话FieldPlayerGoalKeeper.我怎么做?

谢谢

c# oop polymorphism inheritance

4
推荐指数
1
解决办法
113
查看次数

C#动态属性参数

有办法做到以下几点吗?我看到属性参数必须是一个常量表达式,那么我将如何解决这个问题呢?如果我不想使用绑定将某些属性加载到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)

c# attributes properties browsable

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

预测加密字符串的长度

我使用它进行加密:http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged.aspx

有没有办法可以预测加密文本的样​​子?我正在将加密的输出转换为文本,因此我可以将其存储在数据库中.

我只想确保数据库列的大小足够大.

我将文本输入限制为20个字符.

.net c# encryption rijndaelmanaged

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

C#OpenFileDialog中的Stackoverflow/CLR错误

下面的代码是我悲伤的一个(三个)例子.这是一个简单的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)

c# openfiledialog

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

函数结尾处的空白返回语句是否必须返回返回类型?

关于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 c++ gcc gnu g++

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