@@ -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