2011-03-11 4 views
1

に正しく自分のパスワードを暗号化午前:私はセキュリティ上のクラスを持っているASP.NET

public class security 
{ 
    private static string createSalt(int size) 
    { 
     //Generate a random cryptographic number 
     RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); 
     byte[] b = new byte[size]; 
     rng.GetBytes(b); 

     //Convert to Base64 
     return Convert.ToBase64String(b); 
    } 

    /// <summary> 
    /// Generate a hashed password for comparison or create a new one 
    /// </summary> 
    /// <param name="pwd">Users password</param> 
    /// <returns></returns> 
    public static string createPasswordHash(string pwd) 
    { 
     string salt = "(removed)"; 
     string saltAndPwd = string.Concat(pwd, salt); 
     string hashedPwd = 
      FormsAuthentication.HashPasswordForStoringInConfigFile(
      saltAndPwd, "sha1"); 

     return hashedPwd; 
    } 
} 

これは正常に動作しますが、それは十分である場合、私は疑問に思って。

また、この次のコードブロックは良いですか?残酷?

static byte[] encrInitVector = new byte[] { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; 

static string encrKey = "(removed)"; 

public static string EncryptString(string s) 
{ 
    byte[] key; 

    try 
    { 
     key = Encoding.UTF8.GetBytes(encrKey.Substring(0, 8)); 

     DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 

     byte[] inputByteArray = Encoding.UTF8.GetBytes(s); 

     MemoryStream ms = new MemoryStream(); 

     CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, encrInitVector), CryptoStreamMode.Write); 

     cs.Write(inputByteArray, 0, inputByteArray.Length); 

     cs.FlushFinalBlock(); 

     return Convert.ToBase64String(ms.ToArray()); 
    } 
    catch (Exception e) 
    { 
     throw e; 
    } 

答えて

0

私は最後が最高だと言っていますが、残酷は常に良いですが、この画像を見てください。

  • enter image description here

あなたのサイトには、大型ショッピングストアや銀行またはあなたが十分であれば、あなたの最初のコードを強力なセキュリティを必要としないという大きさのようなものではない場合。 (ユーザーのセキュリティが高い場合はSSLをお勧めします)

+0

SSLはどちらの方法でも使用されます。 –

+0

しかし、あなたのアプリケーションはどれくらいの大きさで、どれくらい安全である必要があるのか​​を尋ねる必要があります。私が言ったように、銀行のサイトは、より多くのセキュリティとフォーラムを必要とします。 – SynerCoder