다음 코드에서 생성 일치하지 않습니다관리 SIMPLEBLOB의 덩어리가 관리되지 않는 SIMPLEBLOB (RSA -Cryptography)
CryptExportKey(hKey, hPublicKey, SIMPLEBLOB, 0, lpData, &nSize);
를 사용하여 생성 된 간단한 방울과 일치하지 않는 (즉, client.key가 알기주의 http://www.codeproject.com/KB/security/plaintextsessionkey.aspx을 사용하여 hKey의 텍스트 키 값을 찾음)
CspParameters cspParams = new CspParameters();
cspParams.KeyContainerName = "Container Name";
cspParams.KeyNumber = (int)KeyNumber.Exchange;
cspParams.ProviderType = 1;
cspParams.ProviderName = "Microsoft Enhanced Cryptographic Provider v1.0"; cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
RSACryptoServiceProvider rsaClient = new RSACryptoServiceProvid(cspParams);
rsaClient.ImportCspBlob(File.ReadAllBytes(@"C:\client.key"));//Generate a SIMPLEBLOB session key
byte[] session = GetRC4SessionBlobFromKey(keyMaterial, rsaClient);//Encrypt a key using public key and write it in a SIMPLEBLOB format
public byte[] GetRC4SessionBlobFromKey(byte[] keyData, RSACryptoServiceProvider publicKey)
{
using(MemoryStream ms = new MemoryStream())
using(BinaryWriter w = new BinaryWriter(ms))
{
w.Write((byte) 0x01); // SIMPLEBLOB
w.Write((byte) 0x02); // Version 2
w.Write((byte) 0x00); // Reserved
w.Write(0x00006801); // ALG_ID = RC4 for the encrypted key.
w.Write(0x0000a400); // CALG_RSA_KEYX
w.Write(publicKey.Encrypt(keyData, false));
w.Flush();
return ms.ToArray();
}
}
왜 그런가요?
실제 SIMPLEBLOB 콘텐츠를 첨부하거나 복사 하시겠습니까? 나는 그걸 할 수있어. –
예, CryptExportKey() - blob 및 GetRC4SessionBlobFromKey() - blob의 내용을 포함하십시오. (16 진수 또는 64 진수 또는 기타). –
안녕 Rasmus, 지연된 응답을 보내 주셔서 감사 드리며 답장을 보내 주셔서 감사합니다. 조금만 벗어 났으며 오늘까지 사용자의 의견을 검토하지 않았습니다. 설명 텍스트 상자에 300자를 초과하거나 파일을 업로드 할 수 없습니다.다른 방법 (이메일 등)이 있으면 알려 주시기 바랍니다. 감사합니다 –