none
폴더에 암호 기능을 넣고 싶습니다 RRS feed

  • 질문

  • 안녕하세요. 다람쥐이 입니다

    폴더에 암호기능을 넣어서 폴더의 내용을 보려면 암호를 입력해서

    일치하면 내용을 볼 수 있게하려고 하는데

    PasswordBox 컨트롤로 입력받은 패스워드를

    저장할 때 암호화해서 저장하려고 합니다 어떻게 해야하나요?

    일반적으로 사용되는 방식을 알려주셨으면합니다

    혹시 암호화된 패스워드를 xml 로 저장했다가 다시 암호를 해독할 수도 있는지 궁금합니다

    답변 부탁드립니다.

    좋은 하루 되세요~ ^^

    2014년 2월 11일 화요일 오전 1:41

모든 응답

  • Windows.Security.Cryptography.Core 네임스페이스 내의 CryptographicEngine KeyDerivationAlgorithmProvider 등을 이용하여 작성하시면 될 것 같습니다.

    MSDN의 예제를 참고하시면

    public IBuffer SampleDeriveKeyMaterialPbkdf(
        String strAlgName,
        UInt32 targetKeySize,
        UInt32 iterationCount)
    {
    
        // Open the specified algorithm.
        KeyDerivationAlgorithmProvider objKdfProv = KeyDerivationAlgorithmProvider.OpenAlgorithm(strAlgName);
    
        // Demonstrate how to retrieve the algorithm name.
        String strAlgUsed = objKdfProv.AlgorithmName;
    
        // Create a buffer that contains the secret used during derivation.
        String strSecret = "MyPassword";
        IBuffer buffSecret = CryptographicBuffer.ConvertStringToBinary(strSecret, BinaryStringEncoding.Utf8);
    
        // Create a random salt value.
        IBuffer buffSalt = CryptographicBuffer.GenerateRandom(32);
    
        // Create the derivation parameters.
        KeyDerivationParameters pbkdf2Params = KeyDerivationParameters.BuildForPbkdf2(buffSalt, iterationCount);
    
        // Create a key from the secret value.
        CryptographicKey keyOriginal = objKdfProv.CreateKey(buffSecret);
    
        // Derive a key based on the original key and the derivation parameters.
        IBuffer keyMaterial = CryptographicEngine.DeriveKeyMaterial(
            keyOriginal,
            pbkdf2Params,
            targetKeySize);
    
        // Demonstrate checking the iteration count.
        UInt32 iterationCountOut = pbkdf2Params.IterationCount;
    
        // Demonstrate returning the derivation parameters to a buffer.
        IBuffer buffParams = pbkdf2Params.KdfGenericBinary;
    
        // return the KDF key material.
        return keyMaterial;
    }
    

    대략 이런 식이고, 더 많은 예제는 관련 문서에 있습니다.

    그리고 XML에 저장하는 부분은 가능할 것 같지는 않아보입니다만, 가능하다고 하더라도 안전한 방법으로 생각되지는 않습니다.

    위의 내용들을 검토하시다보면 개념을 다르게 생각하실 수 있지 않을까 생각됩니다.

    2014년 2월 14일 금요일 오전 1:36