문제

Windows XP에서 SHA256CryptoserviceProvider 및 관련 SHA2 제공 업체를 사용할 수 있습니까? 제공 업체는 Vista에 포함 된 암호화 서비스를 사용하고 있으며 위의 Microsoft에서 XP에 이러한 서비스를 설치할 수 있습니까?

편집하다: Windows XP에서 지원되는 것과 관련하여 MSDN에 대한 문서가 잘못되었습니다. 보다 http://connect.microsoft.com/visualstudio/feedback/viewfeedback.aspx?feedbackid=355031 이것은 마이크로 소프트가 디자인으로 인정되고 받아 들여집니다. 그러나 어디에서나 나열된 작업이 없으므로 (내가 본) 서비스를 설치할 수 있는지 확신하지 못했거나 WinXP에 IIS 6 또는 7을 설치하려고하는 Windwills에서 기울어지는 것과 같은 경우 서비스를 설치할 수 있는지 확신하지 못했습니다.

도움이 되었습니까?

해결책

MSDN 문서화가 옳은 것 같습니다. ~해야 한다 XP SP3에서 설계별로 지원되며 그렇지 않은 경우 벌레 .NET 3.5에서.

Aescryptoserviceprovider와 SHA256CryptoserviceProvider는 "Microsoft Enhanced RSA 및 AES 암호화 제공 업체"라는 동일한 Cryptograhics 서비스를 사용합니다. XP에서 서비스 이름은 약간 다릅니다. "Microsoft 강화 RSA 및 AES 암호화 제공 업체 (프로토 타입)". Aescryptoserviceprovider의 생성자는 간단한 점검을 수행합니다.

string providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider";
if(Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor == 1)
{
    providerName = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)";
}

shaxxxcryptoserviceprovider 클래스의 생성자가 있습니다 ~ 아니다 (프로토 타입) 이름을 확인하면 XP에서 실패한 이유입니다. 그들이 그렇게한다면, 그들은 성공할 것입니다.

주어진 PC에는 간단한 해결 방법이 있습니다. 레지스트리 키로 이동하십시오 hkey_local_machine 소프트웨어 microsoft cryptography defaults 제공자, "Microsoft Enhanced RSA 및 AES Cryptographic Provider (프로토 타입)"라는 서브 키를 찾아 .reg로 내보내고 이름에서 this .reg 및 delete "(프로토 타입)"을 내보내십시오. 다시 가져 오면 원래 키는 동일한 내용을 갖는 (프로토 타입)없이 새 키로 복제됩니다. 이제부터 SHA256CryptoserviceProvider는이 XPSP3 시스템에서 작동합니다.

다른 팁

나는 다음 스 니펫으로 성공했지만, 나는 그것에 만족하지 않고 인스턴스화하는 다양한 겉보기 우연한 방법에 관한 So 질문을 거의 게시했습니다. SHA512 당시. 이것은 Windows XP, 7 및 아마도 Vista (기억할 수 없음)에서 테스트됩니다.

using System.Security.Cryptography;

        SHA512 hash;
        try
        {
            hash = new SHA512Cng( );
        }
        catch ( PlatformNotSupportedException )
        {
            hash = SHA512.Create( );
        }

나는 이것이 동일하게 작동해야한다고 생각합니다 SHA256.

또한 두 버전의 출력을 UNIX SHA2 유틸리티와 비교하면 SHA512를 올바르게 구현할 수 있습니다.

MSDN : SHA256CryptoserviceProvider 클래스

플랫폼 : Windows Vista, Windows XP SP2, Windows Server 2003

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top