111,108
社区成员




byte[] Code = System.Text.Encoding.UTF8.GetBytes("1232324");
RSACryptoServiceProvider TempRSA = new RSACryptoServiceProvider();
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
//导入私匙 来加密
RSA.ImportParameters(TempRSA.ExportParameters(false));
byte[] EnCode = RSA.Encrypt(Code, false);
//导入公匙来解密
RSA.ImportParameters(TempRSA.ExportParameters(true));
byte[] DeCode = RSA.Decrypt(EnCode, false);
string temps = System.Text.Encoding.UTF8.GetString(DeCode);
RSACryptoServiceProvider TempRSA = new RSACryptoServiceProvider();
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
//导入私匙 来加密
RSA.ImportParameters(TempRSA.ExportParameters(false));
byte[] EnCode = RSA.Encrypt(Code, false);
//导入公匙来解密
RSA.ImportParameters(TempRSA.ExportParameters(true));
byte[] DeCode = RSA.Decrypt(EnCode, false);
string temps = System.Text.Encoding.UTF8.GetString(DeCode);
using System;
using System.IO;
using System.Security.Cryptography;
using Org.BouncyCastle.Asn1.Pkcs;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Agreement;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Math.EC;
using Org.BouncyCastle.Pkcs;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.Utilities.Encoders;
using Org.BouncyCastle.X509;
namespace RSAKeyTest
{
public class KeyRSA
{
public static void Main(string[] args)
{
try
{
byte[] b1 = System.Convert.FromBase64String("AAAAgK3VW9wGpQybzYMQaJ7GX3lSHr9+mvNDmx4883Sv3L8Wa/s+GAFjXru6yvX2hHPgY9HX3rpNhfVo7PC9dY1gGyAytMuYGLt6rRAptJqzygZL3GeL//abfyYgnRUFSDmEznhnM1pQfSko9TH9XKKCpNYeYSDTFpJw19R/65tR7obG2Hlc5XdhwtWe24n9jl5AsP3Klp/FY/z0sq9w9Boz6r4=");
byte[] b2 = new byte[128];
for (int i = 0; i < 128; i++)
{
b2[i] = b1[i + 4];
Console.WriteLine("byte[" + i + "]:" + b2[i]);
}
byte[] b3 = new byte[16];
for (int i = 0; i < 16; i++)
{
b3[i] = b2[i];
}
//Console.WriteLine("Plan decrynt text:" + new String(b2));
byte[] encodedata = null;
encodedata = System.Convert.FromBase64String("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDF+vv+Mm+fweJBXM0Is2DDRczTmipTQmxFDnohGMggOU+gFFgeZ8JSx4lMHU+MCw96kQqFaII6UAA11Jc4ZP26dTkvdulX09y3HglTNw4eVidV/h4aA6Anx3bpPU9NjgHhG1oEOXiYexmmOlhrvTU3ToSGpl5z533hGErNqSBP9QIDAQAB");
AsymmetricKeyParameter pubKey = PublicKeyFactory.CreateKey(encodedata);
byte[] decSessionKey = decrypt(pubKey, b2);
int keyLen = 128/8;
byte[] sessionKey = new byte[keyLen];
int decSessionKeyLen = decSessionKey.Length;
for (int i = 0; i < keyLen; i++)
{
sessionKey[i] = decSessionKey[decSessionKeyLen - keyLen + i];
}
string base64SessionKey = Convert.ToBase64String(sessionKey);
Console.WriteLine("out2:" + base64SessionKey);
// Console.WriteLine("pubkey:" + new sun.misc.BASE64Encoder().encode( publicKey.getEncoded()));
// byte[] result = KeyRSA.decrypt2(publicKey,b2);
//Console.WriteLine("Decrytpt text(base64):" + new sun.misc.BASE64Encoder().encode(result));
//Console.WriteLine("out2:" + new sun.misc.BASE64Encoder().encode(decrypt(publicKey,b2)));
//pubKeySpec.
//Key pubkey = new RSAPublicKey();
}
catch
{
}
}
public static byte[] decrypt(AsymmetricKeyParameter key, byte[] raw)
{
try {
IBufferedCipher c = CipherUtilities.GetCipher("RSA");
c.Init(false, key);
int blockSize = c.GetBlockSize();
c.ProcessBytes(raw);
byte[] outbytes = c.DoFinal();
return outbytes;
} catch (Exception e) {
throw (e);
}
}
}
}