|
10精币
serverPublicKey=“040000000100010080000000B9421F3E57D4B477419DD84792ADACD71F9624BF233E8BE0668F3623DA50AC4081DCA197BC6457305AC871E05289D07E28054137D5A932D6A2DADA9BAC329F62F7C5BD0E518E90440A93C407043AAF7838F0FEBB653DAD24CED90AA81C40B754CE96C97FC0837A7E44DA94CCCE93338E378C980916A3ADF9B0AE6F8F26DF989C” (十六进制文本)
rijndaelManaged.Key=“EFF7CF3002DD09C7678105DC9449FC899B3EE472D434F686D55CDAB3171E4856” (十六进制文本)
加密结果="Bcv/6++Uc5lYVf3UipN0+l74t5NoqcryDIOlOrPuCiVMoPzWADeLLSYJm24YjQ+bhk6QEZ1NEekz6cTMasbT8RIJpcoIlPr+wnhd1VEzzmQsy/psz7y6LWrPdV8KfbV7x9hV0ZTvNr0IWPJFKfSJUg679f2UxSLlg50m3sQUbGQ="
string str = Convert.ToBase64String(Utils.EncryptDataByRSA(rijndaelManaged.Key, serverPublicKey));
public static byte[] EncryptDataByRSA(byte[] source, byte[] serverPublicKey)
{
if (source == null)
{
throw new ArgumentNullException("source");
}
byte[] array = (byte[])source.Clone();
Array.Reverse(array);
uint num = BitConverter.ToUInt32(serverPublicKey, 0);
byte[] array2 = new byte[num];
Array.Copy(serverPublicKey, 4, array2, 0, array2.Length);
Array.Reverse(array2);
byte[] array3 = new byte[BitConverter.ToUInt32(serverPublicKey, (int)(4U + num))];
Array.Copy(serverPublicKey, (long)((ulong)(8U + num)), array3, 0L, (long)array3.Length);
Array.Reverse(array3);
BigInteger bigInteger = new BigInteger(array);
BigInteger n = new BigInteger(array3);
BigInteger exp = new BigInteger(array2);
byte[] bytes = bigInteger.modPow(exp, n).getBytes();
Array.Reverse(bytes);
return bytes;
}
|
|