2011-10-14 2 views
2

다음 문제에서 도와주세요. MVC3에서 RSA 암호화 및 암호 해독

RSAEncryptionAndDecryption rsaEncDec = new  RSAEncryptionAndDecryption(document.PublicKey, document.PublicAndPrivateKey); 
string reportContent = rsaEncDec.Decrypt(document.Report).OriginalData; 

내가 MVC1 위의 코드를 사용

는, 암호 해독이 제대로 작동하지만, 동일한 코드가 MVC3에서 원래 문자열을 해독 할 수 없습니다 .. 암호화 코드는 다음과 같습니다

RSACryptoServiceProvider rsaCryptoServiceProvider = new RSACryptoServiceProvider(bitStrength); 

     rsaCryptoServiceProvider.FromXmlString(publicKey); 

     int keySize = bitStrength/8; 
     byte[] dataToEnc = Encoding.UTF32.GetBytes(inputData); 
     int maxLength = keySize - 42; 
     int dataLength = dataToEnc.Length; 
     int iterations = dataLength/maxLength; 
     StringBuilder stringBuilder = new StringBuilder(); 

     for (int i = 0; i <= iterations; i++) 
     { 
      byte[] tempBytes = new byte[(dataLength - maxLength * i > maxLength) ? maxLength : dataLength - maxLength * i]; 
      Buffer.BlockCopy(dataToEnc, maxLength * i, tempBytes, 0, tempBytes.Length); 
      byte[] encryptedBytes = rsaCryptoServiceProvider.Encrypt(tempBytes, true); 

      Array.Reverse(encryptedBytes); 

      stringBuilder.Append(Convert.ToBase64String(encryptedBytes)); 
     } 

인코딩 된 문자열을 db에 저장하는 동안 오류가 발생하여 암호화 된 문자열 절반 부분이 저장됩니다.

인코딩 된 문자열이 DB에 저장되는 동안 트리밍되는 중입니다. 이는 MVC3이 아닌 MVC3을 사용할 때만 발생합니다.

나는 html 내용을 암호화합니다. 암호화 된 내용은 공개 키와 개인 키와 함께 저장됩니다. 동일한 키가 호출 될 때 DB에서 가져 오지만 해독이 제대로 작동하지 않습니다. 원래 문자열이 생성되어 일부 특수 문자로 중지되었습니다.

감사합니다.

+0

'RSAEncryptionAndDecryption'이란 무엇이며 질문에'visual-studio-2010-beta-2' 태그가 붙은 이유는 무엇입니까? 당신이 사용하고있는 것입니까? –

+0

Visual Studio 2010 소프트웨어를 사용하고 있습니다. 그게 ... – SUBRA

+0

'RSAEncryptionAndDecryption'은 어떨까요? 어떻게 구현됩니까? –

답변

1

MVC3에서 SQLServer로 데이터를 전달하는 동안 Nhibernate에서 SaveOrUpdate()를 사용할 때 전달되는 문자열이 제대로 전송되지 않는다는 것을 알게되었습니다.

그래서

:) 행복 코딩 내가, 내가 현재 삽입 된 레코드의 ID를 검색하고 업데이트 쿼리를 사용하여 캐릭터를 업데이트한다 짓을 ... .. !!!!!