function EncryptForward:
 
private string EncryptForward(string input)
{
      byte[] b = Encoding.ASCII.GetBytes(input);
      b[0] += 2;
      return Encoding.ASCII.GetString(b);
}function EncryptBackword is the same as above

解决方案 »

  1.   

    我觉得楼上给的结果有一个小bug, b[0] += 2; 在做这个操作时候要判断一下条件,去判断是否已经超出26个字母范围,如果超过要减去26再加2.private string EncryptForward(string input)
    {
       // 121 ='y' , 122='z' 90='Z' 89='y'
       byte[] b = Encoding.ASCII.GetBytes(input);
       if (int.Parse(bytes[0].ToString()) == 121 || 
           int.Parse(bytes[0].ToString()) == 122 || 
           int.Parse(bytes[0].ToString()) == 90 ||  
           int.Parse(bytes[0].ToString()) = 89) 
          { int.Parse(bytes[0].ToString()) - 26 + 2; }
       else
          {int.Parse(bytes[0].ToString()) + 2;}
          return Encoding.ASCII.GetString(b);
    }供参考,这种方式只使用与26个字母间的变换.
      

  2.   

            private string EncryptForward( string input )
            {
                StringBuilder bs = new StringBuilder();
                foreach( char ch in input.ToCharArray() )
                {
                    if( char.IsLetter( ch ) )
                    {
                        if( ch == 'y' || ch == 'z' || ch == 'Y' || ch == 'Z' )
                        {
                            bs.Append( (char)(ch - 24) );
                        }
                        else
                        {
                            bs.Append( (char)(ch + 2) );
                        }
                    }
                }
                return bs.ToString();
            }
            String EncryptBackword( String input )
            {
                StringBuilder bs = new StringBuilder();
                foreach( char ch in input.ToCharArray() )
                {
                    if( char.IsLetter( ch ) )
                    {
                        if( ch == 'a' || ch == 'b' || ch == 'A' || ch == 'B' )
                        {
                            bs.Append( (char)(ch + 24) );
                        }
                        else
                        {
                            bs.Append( (char)(ch - 2) );
                        }
                    }
                }
                return bs.ToString();
            }
      

  3.   

    如果只是小写字母.可以这样写.
    function   EncryptForward: 
    private string EncryptForward(string sourceStr)
    {
                char[] sourceChar = sourceStr.ToCharArray();
                StringBuilder result = new StringBuilder(sourceStr.Length);
                for (int i = 0; i < sourceChar.Length; i++)
                {
                    int AscII = (int)sourceChar[i];
                    AscII = (AscII - 95) % 26 + 97;
                    result.Append(((char)AscII).ToString());
                }
                return result.ToString();
    }