none
hashing 的问题 RRS feed

  • 问题

  • 如果我将一个文本

    文本

    文本字节数组 = 根据文本得来

    文本流 = 根据文本字节数组得来

    我哈希的3个结果会不会一样?

    我做的时候是 有几个不一样 的.所以上来问问!

    [TestMethod()]
    
      public void ComputeTest() {
    
       String source = null;
    
       Stream sourceStream = null;
    
       Byte[] sourceArray = null;   
    
    
    
       source = OriginalString;
    
       sourceArray = System.Text.Encoding.Default.GetBytes(source);
    
       sourceStream = new MemoryStream(sourceArray);
    
    
    
       sourceArray = Helpers.Other.ConvertHelpers.StreamToBytes(sourceStream);
    
       sourceStream = new MemoryStream(sourceArray);
    
    
    
       TestContext.WriteLine("散列的测试:");
    
    
    
       TestContext.WriteLine("\t HMAC:");
    
       for (int i = 0; i < 2; i++) {
    
        TestContext.WriteLine("\t\t 文本 : \t\t " + HMACEntity.Compute(source));
    
        TestContext.WriteLine("\t\t 文本字节数组 : \t\t " + HMACEntity.Compute(sourceArray));
    
        TestContext.WriteLine("\t\t 文本流 : \t\t " + HMACEntity.Compute(sourceStream));
    
       }
    
    
    
       TestContext.WriteLine("\t MAC:");
    
       for (int i = 0; i < 2; i++) {
    
        TestContext.WriteLine("\t\t 文本 : \t\t " + MACEntity.Compute(source));
    
        TestContext.WriteLine("\t\t 文本字节数组 : \t " + MACEntity.Compute(sourceArray));
    
        TestContext.WriteLine("\t\t 文本流 : \t\t " + MACEntity.Compute(sourceStream));
    
       }
    
    
    
       TestContext.WriteLine("\t MD160:");
    
       for (int i = 0; i < 2; i++) {
    
        TestContext.WriteLine("\t\t 文本 : \t\t " + MD160Entity.Compute(source));
    
        TestContext.WriteLine("\t\t 文本字节数组 : \t " + MD160Entity.Compute(sourceArray));
    
        TestContext.WriteLine("\t\t 文本流 : \t\t " + MD160Entity.Compute(sourceStream));
    
       }
    
    
    
       TestContext.WriteLine("\t MD5:");
    
       for (int i = 0; i < 2; i++) {
    
        TestContext.WriteLine("\t\t 文本 : \t\t " + MD5Entity.Compute(source));
    
        TestContext.WriteLine("\t\t 文本字节数组 : \t " + MD5Entity.Compute(sourceArray));
    
        TestContext.WriteLine("\t\t 文本流 : \t\t " + MD5Entity.Compute(sourceStream));
    
       }
    
    
    
       TestContext.WriteLine("\t SHA1:");
    
       for (int i = 0; i < 2; i++) {
    
        TestContext.WriteLine("\t\t 文本 : \t\t " + SHA1Entity.Compute(source));
    
        TestContext.WriteLine("\t\t 文本字节数组 : \t " + SHA1Entity.Compute(sourceArray));
    
        TestContext.WriteLine("\t\t 文本流 : \t\t " + SHA1Entity.Compute(sourceStream));
    
       }
    
    
    
       TestContext.WriteLine("\t SHA384:");
    
       for (int i = 0; i < 2; i++) {
    
        TestContext.WriteLine("\t\t 文本 : \t\t " + SHA384Entity.Compute(source));
    
        TestContext.WriteLine("\t\t 文本字节数组 : \t " + SHA384Entity.Compute(sourceArray));
    
        TestContext.WriteLine("\t\t 文本流 : \t\t " + SHA384Entity.Compute(sourceStream));
    
       }
    
    
    
       TestContext.WriteLine("\t SHA512:");
    
       for (int i = 0; i < 2; i++) {
    
        TestContext.WriteLine("\t\t 文本 : \t\t " + SHA512Entity.Compute(source));
    
        TestContext.WriteLine("\t\t 文本字节数组 : \t " + SHA512Entity.Compute(sourceArray));
    
        TestContext.WriteLine("\t\t 文本流 : \t\t " + SHA512Entity.Compute(sourceStream));
    
       }
    
      }
    
    
    
    
    <pre lang="x-c#">散列的测试:
    
    HMAC:
    
    文本 : AK2wXSqQLoj5H+CaBWk+Svv7P5A=
    
    文本字节数组 : H3tKXLgDiUoUKA47xmwvcSHicVU=
    
    文本流 : weIFM1cc3O8PfXEX16UHYhSO4BM=
    
    文本 : iKKFTpa1LaVwTwN/E3DUBXWbGqc=
    
    文本字节数组 : SNFFPxP/18ashoXu9ItzZ1o2eKg=
    
    文本流 : /M028X3WLfJC1AzisBBxpXuJGFg=
    
    MAC:
    
    文本 : n/MjRCPqwOI=
    
    文本字节数组 : d5GW9ZZrHqw=
    
    文本流 : AAAAAAAAAAA=
    
    文本 : LfAlQMczA+E=
    
    文本字节数组 : IgVAC7n/O0w=
    
    文本流 : AAAAAAAAAAA=
    
    MD160:
    
    文本 : 5V4JHgLPSoN6jZtE0Se0yCuYizk=
    
    文本字节数组 : 5V4JHgLPSoN6jZtE0Se0yCuYizk=
    
    文本流 : nBGFpcXp/FRhKAiXfuj1SLIljTE=
    
    文本 : 5V4JHgLPSoN6jZtE0Se0yCuYizk=
    
    文本字节数组 : 5V4JHgLPSoN6jZtE0Se0yCuYizk=
    
    文本流 : nBGFpcXp/FRhKAiXfuj1SLIljTE=
    
    MD5:
    
    文本 : ZLe6CD6Pnuvi1qhcxT3jMA==
    
    文本字节数组 : ZLe6CD6Pnuvi1qhcxT3jMA==
    
    文本流 : 1B2M2Y8AsgTpgAmY7PhCfg==
    
    文本 : ZLe6CD6Pnuvi1qhcxT3jMA==
    
    文本字节数组 : ZLe6CD6Pnuvi1qhcxT3jMA==
    
    文本流 : 1B2M2Y8AsgTpgAmY7PhCfg==
    
    SHA1:
    
    文本 : eKFHgPdVOTvT3NQQjSKjHjQm3Rw=
    
    文本字节数组 : eKFHgPdVOTvT3NQQjSKjHjQm3Rw=
    
    文本流 : 2jmj7l5rSw0yVb/vlWAYkK/YBwk=
    
    文本 : eKFHgPdVOTvT3NQQjSKjHjQm3Rw=
    
    文本字节数组 : eKFHgPdVOTvT3NQQjSKjHjQm3Rw=
    
    文本流 : 2jmj7l5rSw0yVb/vlWAYkK/YBwk=
    
    SHA384:
    
    文本 : slWO5TDpo5URcgihKrJpIacWMKEvgKYT0Yp0lD3xSxgo6fXsu+OkcR6QxP1AaG7Z
    
    文本字节数组 : slWO5TDpo5URcgihKrJpIacWMKEvgKYT0Yp0lD3xSxgo6fXsu+OkcR6QxP1AaG7Z
    
    文本流 : OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua0vFImLlb
    
    文本 : slWO5TDpo5URcgihKrJpIacWMKEvgKYT0Yp0lD3xSxgo6fXsu+OkcR6QxP1AaG7Z
    
    文本字节数组 : slWO5TDpo5URcgihKrJpIacWMKEvgKYT0Yp0lD3xSxgo6fXsu+OkcR6QxP1AaG7Z
    
    文本流 : OLBgp1GsljhM2TJ+sbHjaiH9txEUvgdDTAzHv2P24donTt6/529l+9Ua0vFImLlb
    
    SHA512:
    
    文本 : 6Coj+FxlQQZUJPUdvs7WlBhwU9x7qeooAvLG+5LqdJANm3yTcImIgM9WjgEljf2Pmo4KSnsp8AZpio+zLJsJSQ==
    
    文本字节数组 : 6Coj+FxlQQZUJPUdvs7WlBhwU9x7qeooAvLG+5LqdJANm3yTcImIgM9WjgEljf2Pmo4KSnsp8AZpio+zLJsJSQ==
    
    文本流 : z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==
    
    文本 : 6Coj+FxlQQZUJPUdvs7WlBhwU9x7qeooAvLG+5LqdJANm3yTcImIgM9WjgEljf2Pmo4KSnsp8AZpio+zLJsJSQ==
    
    文本字节数组 : 6Coj+FxlQQZUJPUdvs7WlBhwU9x7qeooAvLG+5LqdJANm3yTcImIgM9WjgEljf2Pmo4KSnsp8AZpio+zLJsJSQ==
    
    文本流 : z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==
    
    
    • 已编辑 钱仔 2011年1月19日 12:35 修改
    2011年1月19日 12:34

全部回复

  • 你好

    CEntity.Compute(source)等等应该是你自己写的类,定义的方法是吧。可以贴出你的实现吗?

     


    Cookie Luo[MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 钱仔 2011年7月21日 14:38
    • 取消答案标记 钱仔 2011年7月21日 14:39
    • 已标记为答案 钱仔 2011年11月3日 3:31
    • 取消答案标记 ThankfulHeartModerator 2011年11月8日 2:42
    2011年1月21日 2:01
  • 		static public String Compute(Byte[] sourceArray) {
    			String result = null;
    			Byte[] resultArray = null;
    			System.Security.Cryptography.HashAlgorithm algorithmManaged = null;
    
    			algorithmManaged = BuilderAlgorithmManaged();
    			algorithmManaged.Initialize();
    			resultArray = algorithmManaged.ComputeHash(sourceArray);
    
    			result = Convert.ToBase64String(resultArray);
    
    			//return resultArray;
    			return result;
    		}

     

    2011年7月21日 14:39
  • 好吧!我放弃了.
    2011年11月3日 3:31