加密解密

 1 using System;
 2 using System.Security.Cryptography;
 3 using System.Text;
 4 
 5 namespace ManageSystem.Core {
 6     public static class CryptographyHelper {
 7         /// <summary> 
 8         /// MD5加密字符串 WEB
 9         /// </summary> 
10         /// <param name="source">源字符串</param> 
11         /// <returns>加密后的字符串</returns> 
12         public string MD5(string source) {
13             return FormsAuthentication.HashPasswordForStoringInConfigFile(source, "MD5"); ;
14         }
15         /// <summary>
16         /// MD5 32位加密
17         /// </summary>
18         public static string MD5Encrypt32(string strCode) {
19             MD5 md5 = new MD5CryptoServiceProvider();
20             byte[] t = md5.ComputeHash(Encoding.UTF8.GetBytes(strCode));
21             StringBuilder sb = new StringBuilder(32);
22             for (int i = 0; i < t.Length; i++) {
23                 sb.Append(t[i].ToString("x").PadLeft(2, '0'));
24             }
25             return sb.ToString();
26         }
27         /// <summary>
28         /// MD5 16位加密
29         /// </summary>
30         public static string MD5Encrypt16(string strCode) {
31             MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
32             string t2 = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(strCode)), 4, 8);
33             t2 = t2.Replace("-", "");
34             return t2;
35         }
36 
37         // Methods
38         public static string TripleDESDecrypt(string cipherString, string key, bool useHashing) {
39             byte[] buffer;
40             byte[] inputBuffer = Convert.FromBase64String(cipherString);
41             //string key = "johnny depp";
42             if (useHashing) {
43                 MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
44                 buffer = provider.ComputeHash(Encoding.UTF8.GetBytes(key));
45                 provider.Clear();
46             }
47             else {
48                 buffer = Encoding.UTF8.GetBytes(key);
49             }
50             TripleDESCryptoServiceProvider tripleDesProvider = new TripleDESCryptoServiceProvider();
51             tripleDesProvider.Key = buffer;
52             tripleDesProvider.Mode = CipherMode.ECB;
53             tripleDesProvider.Padding = PaddingMode.PKCS7;
54             byte[] bytes = tripleDesProvider.CreateDecryptor().TransformFinalBlock(inputBuffer, 0, inputBuffer.Length);
55             tripleDesProvider.Clear();
56             return Encoding.UTF8.GetString(bytes);
57         }
58 
59         public static string TripleDESEncrypt(string toEncrypt, string key, bool useHashing) {
60             byte[] buffer;
61             byte[] bytes = Encoding.UTF8.GetBytes(toEncrypt);
62             //string key = "johnny depp";
63             if (useHashing) {
64                 MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
65                 buffer = provider.ComputeHash(Encoding.UTF8.GetBytes(key));
66                 provider.Clear();
67             }
68             else {
69                 buffer = Encoding.UTF8.GetBytes(key);
70             }
71             TripleDESCryptoServiceProvider tripleDesProvider = new TripleDESCryptoServiceProvider();
72             tripleDesProvider.Key = buffer;
73             tripleDesProvider.Mode = CipherMode.ECB;
74             tripleDesProvider.Padding = PaddingMode.PKCS7;
75             byte[] inArray = tripleDesProvider.CreateEncryptor().TransformFinalBlock(bytes, 0, bytes.Length);
76             tripleDesProvider.Clear();
77             return Convert.ToBase64String(inArray, 0, inArray.Length);
78         }
79     }
80 }

 

转载于:https://www.cnblogs.com/zhuhc/p/3456241.html

内容概要:本文介绍了一种利用遗传算法优化BP神经网络进行回归预测的方法,并提供了完整的MATLAB程序代码。主要内容包括数据预处理、遗传算法与BP神经网络的结合、适应度函数的设计以及最终的预测结果展示。文中详细解释了如何将Excel格式的数据导入MATLAB并进行归一化处理,如何定义适应度函数来优化BP神经网络的参数(如激活函数和学习率),并通过遗传算法找到最优解。实验结果显示,在某工业数据集上,经过遗传算法优化后的BP神经网络预测精度显著提高,从原来的0.82提升到了0.91。此外,还提到了一些实用技巧,比如调整遗传代数、修改激活函数等方法进一步改进模型性能。 适合人群:对机器学习有一定了解的研究人员和技术爱好者,特别是那些希望深入了解遗传算法与BP神经网络结合应用的人士。 使用场景及目标:适用于需要快速构建高效回归预测模型的场景,尤其是当传统BP神经网络无法达到预期效果时。通过本篇文章的学习,读者能够掌握一种有效的优化手段,从而提高模型的泛化能力和预测准确性。 其他说明:代码可以直接应用于新的数据集,只需确保数据格式符合要求(Excel格式)。对于想要深入探索或改进现有模型的人来说,还可以尝试更换不同的激活函数或其他调节方式来获得更好的表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值