zoukankan      html  css  js  c++  java
  • 加密

    1.MD5加密

    //采用重载public byte[] ComputeHash(byte[] buffer)
    //其他重载public byte[] ComputeHash(Stream inputStream),
    //其他重载public byte[] ComputeHash(byte[] buffer,int offset,int count)
    public static string GetMD5Hash(string str)
    {
        MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();//MD5 md5 =
        byte[] bytes = ASCIIEncoding.Default.GetBytes(str);//System.Text.Encoding.Default.GetBytes(str)
        byte[] encoded = md5.ComputeHash(bytes);//计算 bytes字节数组的哈希值
    
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < encoded.Length; i++)
            sb.Append(encoded[i].ToString("x2"));//ToString("x").PadLeft(2, '0'); //对遍历到的字节进行加密
    
        return sb.ToString();
    }
    
    public static string GetMD5Hash2(string str)
    {
        System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
        byte[] bytes = Encoding.Default.GetBytes(str);
        byte[] encoded = md5.ComputeHash(bytes);
    
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < encoded.Length; i++)
            sb.Append(encoded[i].ToString("x2"));
    
        return sb.ToString();
    }

    System.Security.Cryptography.MD5.Create() is actually creating a MD5CryptoServiceProvider.
    MD5 is the base class and it's abstract. I'm guessing they added the public create function for ease of use.

    public sealed class MD5CryptoServiceProvider : MD5
    public abstract class MD5 : HashAlgorithm

    MD5 Represents the abstract class from which all implementations of the MD5 hash algorithm inherit.
    MD5CryptoServiceProvider Computes the MD5 hash value for the input data using the implementation provided by the cryptographic service provider (CSP). This class cannot be inherited.

    2.ROT13

    private string ROT13Encode(string input)
    {
        char tem_char;
        int uniChar;
        StringBuilder encodeText=new StringBuilder();
        for (int i = 0; i < input.Length; i++)
        {
            //https://msdn.microsoft.com/en-us/library/362314fe.aspx
            tem_char = input[i];//System.Convert.ToChar(input.Substring(i,1));
            uniChar = (int) tem_char;
            if (uniChar >= 97 && uniChar <= 109)//97...109 a...m
            {
                uniChar = uniChar + 13;//110...122 n...z
            }
            else if (uniChar >= 110 && uniChar <= 122)
                {
                    uniChar = uniChar - 13;
                }
            else if (uniChar >= 65 && uniChar <= 77)
            {
                uniChar = uniChar + 13;
            }
            else if (uniChar >= 78 && uniChar <= 909)
            {
                uniChar = uniChar - 13;
            }
            encodeText.Append((char) uniChar);
        }
        return encodeText.ToString();
    }
  • 相关阅读:
    如何获取SQL Server数据库连接字符串的某些部分
    .NET同步原语Barrier简介
    模版引擎RazorEngine简介
    如何使用SQL Server实现SignalR的横向扩展
    SignalR的客户端.NET Client介绍
    一个简单的SignalR例子
    看视频学SignalR—在微软虚拟学院学习SignalR
    看视频学Bootstrap—在微软虚拟学院学习Bootstrap
    C# 窗口与控件的相关操作
    opencv——常见的操作
  • 原文地址:https://www.cnblogs.com/dennysong/p/5628213.html
Copyright © 2011-2022 走看看