Является ли time () хорошей солью?

Я смотрю код, который написал не сам. Код пытается хешировать пароль с помощью SHA512 и использует только time () в качестве соли. time () слишком прост для этого или этот код безопасен?

Спасибо за ответы и комментарии. Я резюмирую это здесь для новых читателей:

  • соль должна быть разной для каждого пользователя, поэтому, если 2 пользователя регистрируются одновременно, их соли не будут уникальными. Это проблема, но небольшая.
  • , но соль никоим образом не должна иметь отношения к пользователю, поэтому time () - не лучший вариант.
  • « Использовать случайную, равномерно распределенную соль с высокой энтропией. » - Это непросто, так какой же код может генерировать случайную, равномерно распределенную, высокоэнтропийную соль?

Хорошо, как насчет того, чтобы заменить time () произвольной строкой длиной 32 символа. Случайная строка может быть сгенерирована 32-кратным циклом по набору буквенных символов. У меня есть список CustomObject, и я хочу привязать его к DataGrid. MainWindow.xaml.cs using System; using System.Collections.Generic; ...

Я новичок в WPF и хочу выполнить базовую привязку данных. У меня есть список CustomObject, и я хочу привязать его к DataGrid.

MainWindow.xaml.cs

   using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;

    namespace WpfApplication1
    {
        /// <summary>
        /// Interaction logic for MainWindow.xaml
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<ArticleItem> list = new List<ArticleItem>() 
                {
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                new ArticleItem(){ ID=3, Title="test", ViewCount=5},
                };
            }
        }

        public class ArticleItem 
        {
            public int ID { get; set; }
            public int ViewCount { get; set; }
            public String Title { get; set; }
        }
    }

Вот как выглядит моя сетка:

<DataGrid Height="179" HorizontalAlignment="Left" Margin="54,65,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="382">
    <DataGrid.Columns>
        <DataGridTextColumn Header="ID"/>
            <DataGridTextColumn Header="ViewCount" />
        <DataGridTextColumn Header="Title" />
    </DataGrid.Columns>
</DataGrid>

Я привык к привязке данных из ASP.Net, где я могу легко сказать:

this.dataGrid1.DataSource = list;

Как мне действовать в WPF?

44
задан citronas 13 February 2011 в 11:54
поделиться