一个完整的类用来生成RSACryptoServiceProvider单例类(.NET)

论坛 期权论坛 脚本     
匿名网站用户   2020-12-21 09:35   232   0
 1 internal class CcbRsaCryptProvider
 2 {
 3         private static RSACryptoServiceProvider _providerForSign;
 4         private static RSACryptoServiceProvider _providerForVerifySign;
 5         private static readonly object SignObj = new object();
 6         private static readonly object VerifySignObj = new object();
 7 
 8         internal static RSACryptoServiceProvider GetInstanceForSign(string privateKeyFile)
 9         {
10             if (null != _providerForSign) return _providerForSign;
11             lock (SignObj)
12             {
13                 if (null != _providerForSign) return _providerForSign;
14                 var provider = new RSACryptoServiceProvider();
15                 provider.FromXmlString(GetXmlContent(privateKeyFile));
16                 _providerForSign = provider;
17             }
18             return _providerForSign;
19         }
20 
21         internal static RSACryptoServiceProvider GetInstanceForVerifySign(string publicKeyFile)
22         {
23             if (null != _providerForVerifySign) return _providerForVerifySign;
24             lock (VerifySignObj)
25             {
26                 if (null != _providerForVerifySign) return _providerForVerifySign;
27                 var provider = new RSACryptoServiceProvider();
28                 provider.FromXmlString(GetXmlContent(publicKeyFile));
29                 _providerForVerifySign = provider;
30             }
31             return _providerForVerifySign;
32         }
33 
34         private static string GetXmlContent(string filePath)
35         {
36             return File.ReadAllText(filePath);
37         }
38 
39         private CcbRsaCryptProvider()
40         {
41         }
42     }

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP