나는 이것을하기 위해 몇 가지 코드를 검색했지만 미리 정의 된 소금을 사용하여 일부를 발견했습니다. 각 사용자에 대해 자동으로 소금을 생성하고 소금 값을 테이블에 저장하려고합니다. 덕분에 나는 프로그래밍 새가 도와주세요 오전C에서 암호를 사용하여 암호 암호화 #
답변
:
public static string GenerateRandomSalt(RNGCryptoServiceProvider rng, int size)
{
var bytes = new Byte[size];
rng.GetBytes(bytes);
return Convert.ToBase64String(bytes);
}
var rng = new RNGCryptoServiceProvider();
var salt1 = GenerateRandomSalt(rng, 16);
var salt2 = GenerateRandomSalt(rng, 16);
// etc.
을
RNGCryptoServiceProvider
은 "암호 학적으로 강한 임의의 값"을 생성하는 데 사용되므로 표준 Random
클래스보다 여기에서 사용하기에 적합합니다. 당신이 소금을 생성하지만, 당신은 선택의 알고리즘을 사용하여 암호 해시에 추가 할 수 있습니다 :
var salt = GenerateRandomSalt(rng, 16);
var hashedPassword = DoPasswordHashing(password + salt);
그러나, 그것은 것보다 정확하게 사용자 인증을 수행하는 것이 더 어려운 문제가 될 수 있다는 지적 가치가있다. 에릭 리 퍼트 (Eric Lippert)는 몇 년 전에이 블로그에 대한 일련의 기사를 썼습니다. http://blogs.msdn.com/b/ericlippert/archive/2005/01/28/you-want-salt-with-that-part-one-security-vs-obscurity.aspx
암호화와 관련된 * 임의의 작업에 임의 번호를 사용하지 마십시오. 암호로 보호되도록 설계되지 않았습니다. 공격은 레인보우 테이블 생성기가 무작위로 생성 될 가능성이있는 소금에 집중하여 공격자가 생성해야하는 테이블의 크기를 크게 줄이는 것입니다. ** 소금은 암호 학적으로 무작위로 유용해야합니다. ** –
이것은 물론 사실입니다. 더 정확한 데모를 제공해야 할 시간이 필요했습니다. 이것이 RNGCryptoServiceProvider 클래스의 목적입니다. 맞습니까? –
@ColeCampbell 예 여기에 RNGCryptoServiceProvider를 사용하는 것이 가장 좋습니다. – Dragon
- 1. 사용자의 암호를 사용하여 암호화
- 2. 레일에서의 암호화/암호 해독
- 3. 수동 암호 암호화
- 4. C에서 URL을 암호화/암호 해독하는 방법
- 5. Web.config 암호화/암호 해독
- 6. C#을 사용하여 암호 암호화 및 암호 해독
- 7. Ironspeed 6.1.1의 암호 암호화
- 8. 간단한 암호 암호화
- 9. 레일즈를 사용하여 암호화, 암호 해독
- 10. 안전하게 암호 암호를 저장하는 방법
- 11. 이진 파일의 암호화 및 암호 해독 문제
- 12. 편도 암호 암호화 알고리즘
- 13. 암호화/암호 해독 프로그램에 "마스터"암호를 추가 할 수 있습니까?
- 14. 암호화 및 암호 해독
- 15. Delphi에서 암호 암호화
- 16. 암호 용 클라이언트/서버 암호화
- 17. 어떻게? ASP.NET의 사용자 암호를 암호화하고 암호 해독
- 18. RSA 암호화 - 암호 해독
- 19. iPhone SQLite 암호 필드 암호화
- 20. 클라이언트/서버 응용 프로그램에서 SMTP 암호 암호화/암호 해독
- 21. 암호 인스턴스 또는 키를 사용하지 않고 암호화 및 암호 해독
- 22. 암호화 및 암호 해독
- 23. 암호화/암호 해독 시도
- 24. 아파치 BasicDataSource에서 암호화 된 암호를 사용하는 방법?
- 25. .NET 용 FIPS 호환 암호 암호화
- 26. C에서 Blowfish 암호화 적용 문제
- 27. J2ME - mp3 파일의 암호화 및 암호 해독
- 28. C#을 사용하여 NSF 파일 암호화 및 암호 해독
- 29. Sybase IQ 및 암호화 된 암호
- 30. 파이썬으로 파일 암호화/암호 해독
정확히 무엇이 문제입니까? 당신은 당신이해야 할 일을 정확하게 처리하는 것처럼 보입니다. –
"나는 프로그래밍에 익숙하지 않다."그리고 암호화와 관련된 모든 질문은 경고음을 울리게해야합니다. 암호화는 옳은 일을하는 것이 어려운 일이며, 이것에 대해 매우 신중할 것입니다. – RichK