zoukankan      html  css  js  c++  java
  • GetHashCode()方法在32位系统与64位系统运算结果的不同

    前几天把新开发完成的程序布置到公司服务器上
    发现WinForm端调用WebService的SoapHeader验证一直出错
    原本在测试服务器中运行都是没有问题的
    我在SoapHeader中加入了些垃圾数据调用GetHashCode()对哈希码进行验证
    避免有权限的人跳过Client端通过URL直接调用WebMethod
    而测试服务器是32位机,正式服务器却是64位机,装的也是64位系统
    因为计算字长不同,得到的哈希码也不同

                    string str = "Hello World";
                    Console.WriteLine("string:"+str);
                    string hash = str.GetHashCode().ToString();
                    Console.WriteLine("HashCode:" + hash);
                    Console.ReadLine();

    同一个程序在32位机与64位机上的运行结果:

    32位:

    64位:

     

    64位的计算结果已经溢出了,用Int64声明变量也是同样结果

    因为GetHashCode()返回的是Int32类型,啥时候出来个GetHashCode64()估计能产生相同结果吧

    总之SoapHeader中的验证我已经放弃使用Hash码了

    最后一篇技术类文章,下一篇开始响应老大号召,转移到博客园啦~~~

  • 相关阅读:
    适用于Java和JavaScript的Codota AI自动完成
    Postgresql常用函数整理
    vue引入echarts地图的三种方式
    Linux下 tar 命令介绍
    如何并发执行Linux命令
    如何复用外部shell脚本
    shell 脚本中日期运算
    有问题找男人帮忙- Linux下man命令
    MySQL 排序规则简介
    再也不用担心 SSH 断开了
  • 原文地址:https://www.cnblogs.com/zhlei616/p/1641508.html
Copyright © 2011-2022 走看看