Skip to content

Commit dcbb2ee

Browse files
authored
Merge pull request #10 from myloveCc/dev
Add new RSAEncrypt and RSADecrypt method.
2 parents 6f70e86 + 7dfdf94 commit dcbb2ee

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

src/NETCore.Encrypt/EncryptProvider.cs

+33-4
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ private static string GetRandomStr(int length)
3030
StringBuilder num = new StringBuilder();
3131

3232
Random rnd = new Random(DateTime.Now.Millisecond);
33-
for (int i = 0; i < length; i++)
33+
for (int i = 0;i < length;i++)
3434
{
3535
num.Append(arrChar[rnd.Next(0, arrChar.Length)].ToString());
3636
}
@@ -354,27 +354,56 @@ public static string DESDecrypt(string data, string key)
354354
/// <param name="srcString">src string</param>
355355
/// <returns>encrypted string</returns>
356356
public static string RSAEncrypt(string publicKey, string srcString)
357+
{
358+
string encryptStr = RSAEncrypt(publicKey, srcString, RSAEncryptionPadding.Pkcs1);
359+
return encryptStr;
360+
}
361+
362+
/// <summary>
363+
/// RSA encrypt
364+
/// </summary>
365+
/// <param name="publicKey">public key</param>
366+
/// <param name="srcString">src string</param>
367+
/// <param name="padding">rsa encryptPadding <see cref="RSAEncryptionPadding"/> RSAEncryptionPadding.Pkcs1 for linux/mac openssl </param>
368+
/// <returns>encrypted string</returns>
369+
public static string RSAEncrypt(string publicKey, string srcString, RSAEncryptionPadding padding)
357370
{
358371
Check.Argument.IsNotEmpty(publicKey, nameof(publicKey));
359372
Check.Argument.IsNotEmpty(srcString, nameof(srcString));
373+
Check.Argument.IsNotNull(padding, nameof(padding));
360374

361375
using (RSA rsa = RSA.Create())
362376
{
363377
rsa.FromJsonString(publicKey);
364-
byte[] encryptBytes = rsa.Encrypt(Encoding.UTF8.GetBytes(srcString), RSAEncryptionPadding.Pkcs1);
378+
byte[] encryptBytes = rsa.Encrypt(Encoding.UTF8.GetBytes(srcString), padding);
365379
return encryptBytes.ToHexString();
366380
}
367381
}
382+
368383
/// <summary>
369384
/// RSA decrypt
370385
/// </summary>
371386
/// <param name="privateKey">private key</param>
372387
/// <param name="srcString">encrypted string</param>
373388
/// <returns>Decrypted string</returns>
374389
public static string RSADecrypt(string privateKey, string srcString)
390+
{
391+
string decryptStr = RSADecrypt(privateKey, srcString, RSAEncryptionPadding.Pkcs1);
392+
return decryptStr;
393+
}
394+
395+
/// <summary>
396+
/// RSA encrypt
397+
/// </summary>
398+
/// <param name="publicKey">public key</param>
399+
/// <param name="srcString">src string</param>
400+
/// <param name="padding">rsa encryptPadding <see cref="RSAEncryptionPadding"/> RSAEncryptionPadding.Pkcs1 for linux/mac openssl </param>
401+
/// <returns>encrypted string</returns>
402+
public static string RSADecrypt(string privateKey, string srcString, RSAEncryptionPadding padding)
375403
{
376404
Check.Argument.IsNotEmpty(privateKey, nameof(privateKey));
377405
Check.Argument.IsNotEmpty(srcString, nameof(srcString));
406+
Check.Argument.IsNotNull(padding, nameof(padding));
378407

379408
using (RSA rsa = RSA.Create())
380409
{
@@ -408,7 +437,7 @@ public static RSAKey CreateRsaKey(RsaSize rsaSize = RsaSize.R2048)
408437
{
409438
using (RSA rsa = RSA.Create())
410439
{
411-
rsa.KeySize = (int)RsaSize.R2048;
440+
rsa.KeySize = (int) RsaSize.R2048;
412441

413442
string publicKey = rsa.ToJsonString(false);
414443
string privateKey = rsa.ToJsonString(true);
@@ -732,7 +761,7 @@ private static string CreateMachineKey(int length)
732761
rng.GetBytes(random);
733762

734763
StringBuilder machineKey = new StringBuilder(length);
735-
for (int i = 0; i < random.Length; i++)
764+
for (int i = 0;i < random.Length;i++)
736765
{
737766
machineKey.Append(string.Format("{0:X2}", random[i]));
738767
}

0 commit comments

Comments
 (0)