내가 가입하고이를 위해 RSACryptoServiceProviderRSACryptoServiceProvider 공개/개인 키 가져 오기
를 통해 데이터를 확인하려면, 나는 공개 키와 개인 키가 필요합니다.
내 프로젝트에서 MyPublic 및 Private 키를 XML 파일에 저장합니다.
한 시간, 나는 MyPublic 키와 개인 키 위에서
public bool SignutureCheckForVerify(string myData, byte[] SignedData)
{
...
RSACryptoServiceProvider RSAalg = new RSACryptoServiceProvider();
RSAalg.FromXmlString(MyPublicKey());
return RSAalg.VerifyData(Encoding.ASCII.GetBytes(myData), new MineCryptoService(), SignedData);
...
}
private static string MyPublicKey()
{
return "<RSAKeyValue><Modulus>-----Pubic Key Here ----</RSAKeyValue>";
}
, 나는 "데이터를 통해 공개 키 확인"
내 SignData 방법이 유사하다는 것을 보여 주었다 생성합니다. 거기에서
,
RSAalg.FromXmlString(GetPrivateKey());
...
RSAalg.SignData(...)
내 질문시 그; 어떤 예를 들자면, 나는 그것을 인식했다. 공개 키와 개인 키는 crt/pem/cert 등의 인증서 파일을 통해 가져옵니다. 거기에 XML 파일을 저장했습니다.
© 내 솔루션이 잘못 되었나요?
그 두 번째 질문,
내가 키
https://msdn.microsoft.com/en-us/library/tswxhw92(v=vs.110).aspx
GetKeyFromContainer ("MyKeyContainer")를 가져올이 방법을 사용하는 경우
;IS MyKeyContainer 개인 키와 공개 키가 정적입니까? 각 실행에서
, 나는 같은 개인 키/공개 키각 실행 내가 다른 키 설정을 할 수 있습니까? 강조 표시된 텍스트
당신의 대답에 많은 시간을 할애합니다. XML 파일을 저장하여 키를 저장하는 것은 어떻습니까? 그리고 XML의 Storege와 인증서 파일의 저장에 대한 차이점은 무엇입니까? 너 나 좀 도와 줄 수있어? –
XML은 Microsoft의 독점적 인 저장소로 사용됩니다. 인증서에 공개 키를 저장하면 인증서에 추가 데이터를 저장할 수 있습니다. 인증서는 개인 키로 "자체 서명"되거나 PKI를 만들 수있는 인증 기관 (또는 PGP의 경우 "누구든지")이 서명 할 수 있습니다. 주제 "키 관리"는 엄청납니다. StackOverflow를 뛰어 넘어 모든 옵션과 특정 선택의 의미를 논의합니다. –
@MaartenBodewes RSACryptoServiceProvider는 알고리즘을 인수로 요구합니다. SHA-1을 기본값으로 사용한다는 것은 무엇을 의미합니까? (OAEP의 경우 SHA-1 만 지원하지만 암호화는 서명이 아닙니다.) – bartonjs