惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
Recorded Future
Recorded Future
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
The GitHub Blog
The GitHub Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Microsoft Azure Blog
Microsoft Azure Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
M
MIT News - Artificial intelligence
云风的 BLOG
云风的 BLOG
Y
Y Combinator Blog
N
News | PayPal Newsroom
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Help Net Security
Help Net Security
博客园 - Franky
SecWiki News
SecWiki News
Recent Announcements
Recent Announcements
T
Troy Hunt's Blog
The Register - Security
The Register - Security
The Last Watchdog
The Last Watchdog
Webroot Blog
Webroot Blog
S
Security Affairs
博客园 - 司徒正美
S
Schneier on Security
I
InfoQ
博客园_首页
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Threat Research - Cisco Blogs
Forbes - Security
Forbes - Security
腾讯CDC
N
Netflix TechBlog - Medium
N
News and Events Feed by Topic
Cloudbric
Cloudbric
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
A
About on SuperTechFans
Engineering at Meta
Engineering at Meta
Recent Commits to openclaw:main
Recent Commits to openclaw:main
B
Blog
V
Vulnerabilities – Threatpost
C
Check Point Blog
Google DeepMind News
Google DeepMind News
Google Online Security Blog
Google Online Security Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Hacker News - Newest:
Hacker News - Newest: "LLM"
C
Cisco Blogs
Schneier on Security
Schneier on Security
O
OpenAI News
K
Kaspersky official blog

博客园 - 绿毛虫

技巧/诀窍:在ASP.NET中重写URL(转) scrollLeft,scrollWidth,clientWidth,offsetWidth到底指的哪到哪的距离之完全详解 重写的支持多验证TextBox控件(转) asp.net网站统计(转) 呵呵 帮忙顶下咯 您需要掌握的八个CSS布局技巧(转) 采用DIV+CSS布局的好(转) 如何遍历Request的信息(转自孟子E章) 如何把html(form1)中的值用Submit传给serch.aspx页面,在serch.aspx又如何获取呢?(收集) 如何生成静态页面的五种方案(转) 在ASP.Net中使用FCKeditor FCKeditor 2.0 的设置.修改.使用(转) FckEditor中文配置手册详细说明(转) c#文件上传类(转) C#文件上传类(转) 服务器端FileUpload上传控件如何禁止手动输入(原) AJAX入门之深入理解JavaScript中的函数(转) C#文件上传类(转) asp.net利用RAR实现文件压缩解压缩[转载]
C#加密解密方法 (转)
绿毛虫 · 2007-09-04 · via 博客园 - 绿毛虫

1、方法一 (不可逆加密)

 

 

public string EncryptPassword(string PasswordString,string PasswordFormat ) 
   

   
string  encryptPassword = null;
   
if (PasswordFormat="SHA1")
   encryptPassword
=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString 

,
"SHA1"); 
   }
 
   elseif (PasswordFormat
="MD5"
   
{ encryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString 

,
"MD5"); 
   }

return encryptPassword ;
}

 

2、方法二 (可逆加密)

 

    
public interface IBindesh
{
    
string encode(string str);
    
string decode(string str);
}


public class EncryptionDecryption : IBindesh
    
{
        
public string encode(string str)
        
{
            
string htext = ""

            
for ( int i = 0; i < str.Length; i++)
            
{
                htext 
= htext + (char) (str[i] + 10 - 1 * 2);
            }

            
return htext;
        }


        
public string decode(string str)
        
{
            
string dtext = ""

            
for ( int i=0; i < str.Length; i++)
            
{
                dtext 
= dtext + (char) (str[i] - 10 + 1*2);
            }

            
return dtext;
        }


 

3、方法三 (可逆加密)

 

        
        
const string KEY_64 = "VavicApp";//注意了,是8个字符,64位

        
const string IV_64 = "VavicApp"
public string Encode(string data)
        
{
            
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

            DESCryptoServiceProvider cryptoProvider 
= new DESCryptoServiceProvider();
            
int i = cryptoProvider.KeySize;
            MemoryStream ms 
= new MemoryStream();
            CryptoStream cst 
= new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, 

byIV), CryptoStreamMode.Write);

            StreamWriter sw 
= new StreamWriter(cst);
            sw.Write(data);
            sw.Flush();
            cst.FlushFinalBlock();
            sw.Flush();
            
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);

        }


        
public string Decode(string data)
        
{
            
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
            
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);

            
byte[] byEnc;
            
try
            
{
                byEnc 
= Convert.FromBase64String(data);
            }

            
catch
            
{
                
return null;
            }


            DESCryptoServiceProvider cryptoProvider 
= new DESCryptoServiceProvider();
            MemoryStream ms 
= new MemoryStream(byEnc);
            CryptoStream cst 
= new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, 

byIV), CryptoStreamMode.Read);
            StreamReader sr 
= new StreamReader(cst);
            
return sr.ReadToEnd();
        }

 

4、MD5不可逆加密

    (32位加密)

public string GetMD5(string s, string _input_charset)
    
{

        
/**//// <summary>
        
/// 与ASP兼容的MD5加密算法
        
/// </summary>


        MD5 md5 
= new MD5CryptoServiceProvider();
        
byte[] t = md5.ComputeHash(Encoding.GetEncoding(_input_charset).GetBytes(s));
        StringBuilder sb 
= new StringBuilder(32);
        
for (int i = 0; i < t.Length; i++)
        
{
            sb.Append(t[i].ToString(
"x").PadLeft(2, '0'));
        }

        
return sb.ToString();
    }

   (16位加密)

 

public static string GetMd5Str(string ConvertString)
    
{
        MD5CryptoServiceProvider md5 
= new MD5CryptoServiceProvider();
        
string t2 = 

BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString)), 
48);
        t2 
= t2.Replace("-""");
        
return t2;
    }
 
 

5、加解文本文件

 

    
//加密文件
    private static void EncryptData(String inName, String outName, byte[] desKey, byte[] 

desIV)
    
{
        
//Create the file streams to handle the input and output files.
        FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
        FileStream fout 
= new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
        fout.SetLength(
0);

        
//Create variables to help with read and write.
        byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
        long rdlen = 0;              //This is the total number of bytes written.
        long totlen = fin.Length;    //This is the total length of the input file.
        int len;                     //This is the number of bytes to be written at a time.

        DES des 
= new DESCryptoServiceProvider();
        CryptoStream encStream 
= new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), 

CryptoStreamMode.Write);

        
//Read from the input file, then encrypt and write to the output file.
        while (rdlen < totlen)
        
{
            len 
= fin.Read(bin, 0100);
            encStream.Write(bin, 
0, len);
            rdlen 
= rdlen + len;
        }


        encStream.Close();
        fout.Close();
        fin.Close();
    }


    
//解密文件
    private static void DecryptData(String inName, String outName, byte[] desKey, byte[] 

desIV)
    
{
        
//Create the file streams to handle the input and output files.
        FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
        FileStream fout 
= new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
        fout.SetLength(
0);

        
//Create variables to help with read and write.
        byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
        long rdlen = 0;              //This is the total number of bytes written.
        long totlen = fin.Length;    //This is the total length of the input file.
        int len;                     //This is the number of bytes to be written at a time.

        DES des 
= new DESCryptoServiceProvider();
        CryptoStream encStream 
= new CryptoStream(fout, des.CreateDecryptor(desKey, desIV), 

CryptoStreamMode.Write);

        
//Read from the input file, then encrypt and write to the output file.
        while (rdlen < totlen)
        
{
            len 
= fin.Read(bin, 0100);
            encStream.Write(bin, 
0, len);
            rdlen 
= rdlen + len;
        }


        encStream.Close();
        fout.Close();
        fin.Close();
    }

 

6

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace Component
{
    
public class Security
    
{
        
public Security()
        

        
        }


        
//默认密钥向量
        private static byte[] Keys = 0x120x340x560x780x900xAB0xCD0xEF };
        
/**//**//**//// <summary>
        
/// DES加密字符串
        
/// </summary>
        
/// <param name="encryptString">待加密的字符串</param>
        
/// <param name="encryptKey">加密密钥,要求为8位</param>
        
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>

        public static string EncryptDES(string encryptString, string encryptKey)
        
{
            
try
            
{
                
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(08));
                
byte[] rgbIV = Keys;
                
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                DESCryptoServiceProvider dCSP 
= new DESCryptoServiceProvider();
                MemoryStream mStream 
= new MemoryStream();
                CryptoStream cStream 
= new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, 

rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 
0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                
return Convert.ToBase64String(mStream.ToArray());
            }

            
catch
            
{
                
return encryptString;
            }

        }


        
/**//**//**//// <summary>
        
/// DES解密字符串
        
/// </summary>
        
/// <param name="decryptString">待解密的字符串</param>
        
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
        
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>

        public static string DecryptDES(string decryptString, string decryptKey)
        
{
            
try
            
{
                
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
                
byte[] rgbIV = Keys;
                
byte[] inputByteArray = Convert.FromBase64String(decryptString);
                DESCryptoServiceProvider DCSP 
= new DESCryptoServiceProvider();
                MemoryStream mStream 
= new MemoryStream();
                CryptoStream cStream 
= new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, 

rgbIV), CryptoStreamMode.Write);
                cStream.Write(inputByteArray, 
0, inputByteArray.Length);
                cStream.FlushFinalBlock();
                
return Encoding.UTF8.GetString(mStream.ToArray());
            }

            
catch
            
{
                
return decryptString;
            }

        }
 


    }

}