SYSLIB0041: 일부 Rfc2898DeriveBytes 생성자가 사용되지 않음
다음 Rfc2898DeriveBytes 생성자는 .NET 7부터 더 이상 사용되지 않습니다. 코드에서 이러한 API를 사용하면 컴파일 시간에 SYSLIB0041
경고가 생성됩니다.
- Rfc2898DeriveBytes(String, Byte[])
- Rfc2898DeriveBytes(String, Int32)
- Rfc2898DeriveBytes(Byte[], Byte[], Int32)
- Rfc2898DeriveBytes(String, Byte[], Int32)
- Rfc2898DeriveBytes(String, Int32, Int32)
이러한 오버로드는 해시 알고리즘 또는 반복 횟수를 기본값으로 설정하며, 기본값은 더 이상 안전한 것으로 간주되지 않습니다. 이는 .NET 4.7.1 및 이전 버전에서 사용할 수 있었던 모든 생성자입니다. 앞으로는 최신 생성자만 사용해야 합니다.
해결 방법
반복 횟수(기본값은 1000) 및 해시 알고리즘 이름(기본값은 HashAlgorithmName.SHA1)을 명시적으로 지정할 수 있는 다른 생성자 오버로드를 사용합니다.
기본 반복 횟수 또는 기본 해시 알고리즘을 사용하는 경우 더 안전한 값, 즉 더 큰 반복 횟수 또는 최신 해시 알고리즘으로 변경하는 것이 좋습니다.
경고 표시 안 함
사용되지 않는 API를 사용해야 하는 경우, 코드 또는 프로젝트 파일에서 경고를 표시하지 않을 수 있습니다.
단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 경고를 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.
// Disable the warning.
#pragma warning disable SYSLIB0041
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0041
프로젝트에서 모든 SYSLIB0041
경고를 표시하지 않으려면 프로젝트 파일에 <NoWarn>
속성을 추가합니다.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0041</NoWarn>
</PropertyGroup>
</Project>
자세한 내용은 경고 표시 안 함을 참조하세요.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET