c# 如何利用異或運算進行簡單加密解密


利用“^”異或運算對字符串進行加密

原理:按位做“異或”運算是->位值相同得1,不同得0,如下計算

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

 

例如:

< 加密過程:>

原解釋的二進制為          1  1  0  0   ----原文

設定的key的二進制為     0  1  1  0  ----密鑰

兩者做“異或”結果為    0  1  0  1 ----密文

 

< 解密過程:>

                                      0  1  0  1 ----密文

             0  1  1  0  ----密鑰

兩者“異或”就得到了  1  1  0  0 ----原文

 

使用c# 實現如下:

  /// <summary>
        /// 異或的加密解密
        /// </summary>
        /// <param name="str">原文/密文字符串</param>
        /// <returns>原文/密文字符串</returns>
        public static string BCutEncrypt(string str)
        {
            char emblem = '\n';//密鑰
            StringBuilder buffer = new StringBuilder();
            char[] chars = str.ToCharArray();
            foreach(char ch in chars)
            {
                char temp = (char)(ch ^ emblem);
                buffer.Append(temp);
            }
            return buffer.ToString();
        }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM