zoukankan      html  css  js  c++  java
  • 哈希

    Hash

     编辑
    Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
    HASH函数(计算机算法领域)
    中文名
    散列
    外文名
    Hash
    音    译
    哈希
    表    示
    任意长度的输入

     

    基本概念

    编辑
    * 若结构中存在和关键字K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称这个对应关系f为散列函数(Hash function),按这个事先建立的表为散列表
    * 对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象称碰撞。具有相同函数值的关键字对该散列函数来说称做同义词。综上所述,根据散列函数H(key)和处理冲突的方法将一组关键字映象到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“象” 作为记录在表中的存储位置,这种表便称为散列表,这一映象过程称为散列造表或散列,所得的存储位置称散列地址。
    * 若对于关键字集合中的任一个关键字,经散列函数映象到地址集合中任何一个地址的概率是相等的,则称此类散列函数为均匀散列函数(Uniform Hash function),这就是使关键字经过散列函数得到一个“随机的地址”,从而减少冲突。

    性质

    所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果。但另一方面,散列函数的输入和输出不是一一对应的,如果两个散列值相同,两个输入值很可能是相同的,但并不能绝对肯定二者一定相等。输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值。
    典型的散列函数都有无限定义域,比如任意长度的字节字符串,和有限的值域,比如固定长度的比特串。在某些情况下,散列函数可以设计成具有相同大小的定义域和值域间的一一对应。一一对应的散列函数也称为排列。可逆性可以通过使用一系列的对于输入值的可逆“混合”运算而得到。

    常用HASH函数

    ·直接取余法:f(x):= x mod maxM ; maxM一般是不太接近 2^t 的一个质数。
    ·乘法取整法:f(x):=trunc((x/maxX)*maxlongit) mod maxM,主要用于实数。
    ·平方取中法:f(x):=(x*x div 1000 ) mod 1000000); 平方后取中间的,每位包含信息比较多。

    构造方法

    散列函数能使对一个数据序列的访问过程更加迅速有效,通过散列函数,数据元素将被更快地定位。
    (详细构造方法可以参考hash函数中的【哈希表的构造方法】)
    1.直接寻址法:取关键字或关键字的某个线性函数值为散列地址。即H(key)=key或H(key) = a·key + b,其中a和b为常数(这种散列函数叫做自身函数)
    2. 数字分析法
    3. 平方取中法
    4. 折叠法
    5. 随机数法
    6. 除留余数法:取关键字被某个不大于散列表表长m的数p除后所得的余数为散列地址。即 H(key) = key MOD p,p<=m。不仅可以对关键字直接取模,也可在折叠、平方取中等运算之后取模。对p的选择很重要,一般取素数或m,若p选的不好,容易产生同义词。

    处理冲突方法

    1.开放寻址法;Hi=(H(key) + di) MOD m,i=1,2,…,k(k<=m-1),其中H(key)为散列函数,m为散列表长,di为增量序列,可有下列三种取法:
    1). di=1,2,3,…,m-1,称线性探测再散列;
    2). di=1^2,(-1)^2,2^2,(-2)^2,(3)^2,…,±(k)^2,(k<=m/2)称二次探测再散列;
    3). di=伪随机数序列,称伪随机探测再散列。
    2. 再散列法:Hi=RHi(key),i=1,2,…,k RHi均是不同的散列函数,即在同义词产生地址冲突时计算另一个散列函数地址,直到冲突不再发生,这种方法不易产生“聚集”,但增加了计算时间。
    3. 链地址法(拉链法)
    4. 建立一个公共溢出区

    查找性能分析

    散列表的查找过程基本上和造表过程相同。一些关键码可通过散列函数转换的地址直接找到,另一些关键码在散列函数得到的地址上产生了冲突,需要按处理冲突的方法进行查找。在介绍的三种处理冲突的方法中,产生冲突后的查找仍然是给定值与关键码进行比较的过程。所以,对散列表查找效率的量度,依然用平均查找长度来衡量。
    查找过程中,关键码的比较次数,取决于产生冲突的多少,产生的冲突少,查找效率就高,产生的冲突多,查找效率就低。因此,影响产生冲突多少的因素,也就是影响查找效率的因素。影响产生冲突多少有以下三个因素:
    1.散列函数是否均匀;
    2. 处理冲突的方法;
    3.散列表的装填因子。
    散列表的装填因子定义为:α= 填入表中的元素个数/散列表的长度
    α是散列表装满程度的标志因子。由于表长是定值,α与“填入表中的元素个数”成正比,所以,α越大,填入表中的元素较多,产生冲突的可能性就越大;α越小,填入表中的元素较少,产生冲突的可能性就越小。
    实际上,散列表的平均查找长度是装填因子α的函数,只是不同处理冲突的方法有不同的函数。
    了解了hash基本定义,就不能不提到一些著名的hash算法,MD5SHA-1可以说是目前应用最广泛的Hash算法,而它们都是以MD4为基础设计的。
    常用hash算法的介绍:
    (1)MD4
    MD4(RFC 1320)是 MIT 的Ronald L. Rivest在 1990 年设计的,MD 是 Message Digest(消息摘要) 的缩写。它适用在32位字长的处理器上用高速软件实现——它是基于 32位操作数的位操作来实现的。
    (2)MD5
    MD5(RFC 1321)是 Rivest 于1991年对MD4的改进版本。它对输入仍以512位分组,其输出是4个32位字的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好。
    (3)SHA-1及其他
    SHA1是由NIST NSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1 设计时基于和MD4相同原理,并且模仿了该算法。

    散列函数应用

    由于散列函数的应用的多样性,它们经常是专为某一应用而设计的。例如,加密散列函数假设存在一个要找到具有相同散列值的原始输入的敌人。一个设计优秀的加密散列函数是一个“单向”操作:对于给定的散列值,没有实用的方法可以计算出一个原始输入,也就是说很难伪造。为加密散列为目的设计的函数,如MD5,被广泛的用作检验散列函数。这样软件下载的时候,就会对照验证代码之后才下载正确的文件部分。此代码有可能因为环境因素的变化,如机器配置或者IP地址的改变而有变动。以保证源文件的安全性。
    错误监测和修复函数主要用于辨别数据被随机的过程所扰乱的事例。当散列函数被用于校验和的时候,可以用相对较短的散列值来验证任意长度的数据是否被更改过。
    错误校正
    使用一个散列函数可以很直观的检测出数据在传输时发生的错误。在数据的发送方,对将要发送的数据应用散列函数,并将计算的结果同原始数据一同发送。在数据的接收方,同样的散列函数被再一次应用到接收到的数据上,如果两次散列函数计算出来的结果不一致,那么就说明数据在传输的过程中某些地方有错误了。这就叫做冗余校验
    对于错误校正,假设相似扰动的分布接近最小(a distribution of likely perturbations is assumed at least approximately)。对于一个信息串的微扰可以被分为两类,大的(不可能的)错误和小的(可能的)错误。我们对于第二类错误重新定义如下,假如给定 H(x) 和 x+s,那么只要s足够小,我们就能有效的计算出x。那样的散列函数被称作错误校正编码。这些错误校正编码有两个重要的分类:循环冗余校验和里德所罗门码。
    语音识别
    对于像从一个已知列表中匹配一个MP3文件这样的应用,一种可能的方案是使用传统的散列函数——例如MD5,但是这种方案会对时间平移、CD读取错误、不同的音频压缩算法或者音量调整的实现机制等情况非常敏感。使用一些类似于MD5的方法有利于迅速找到那些严格相同(从音频文件的二进制数据来看)的音频文件,但是要找到全部相同(从音频文件的内容来看)的音频文件就需要使用其他更高级的算法了。
    那些并不紧随IT工业潮流的人往往能反其道而行之,对于那些微小差异足够鲁棒散列函数确实存在。现存的绝大多数散列算法都是不够鲁棒的,但是有少数散列算法能够达到辨别从嘈杂房间里的扬声器里播放出来的音乐的鲁棒性。有一个实际的例子是Shazam[1]服务。用户可以用电话机拨打一个特定的号码,并将电话机的话筒靠近用于播放音乐的扬声器。该项服务会分析正在播放的音乐,并将它于存储在数据库中的已知的散列值进行比较。用户就能够收到被识别的音乐的曲名(需要收取一定的费用)
    信息安全
    Hash算法在信息安全方面的应用主要体现在以下的3个方面:
    我们比较熟悉的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破坏。
    MD5 Hash算法的"数字指纹"特性,使它成为目前应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5 checksum的命令。
    Hash 算法也是现代密码体系中的一个重要组成部分。由于非对称算法的运算速度较慢,所以在数字签名协议中,单向散列函数扮演了一个重要的角色。对 Hash 值,又称"数字摘要"进行数字签名,在统计上可以认为与对文件本身进行数字签名是等效的。而且这样的协议还有其他的优点。
    (3) 鉴权协议
    如下的鉴权协议又被称作挑战--认证模式:在传输信道是可被侦听,但不可被篡改的情况下,这是一种简单而安全的方法。以上就是一些关于hash以及其相关的一些基本预备知识。

    哈希函数

    (1)余数法:先估计整个哈希表中的表项目数目大小。然后用这个估计值作为除数去除每个原始值,得到商和余数。用余数作为哈希值。因为这种方法产生冲突的可能性相当大,因此任何搜索算法都应该能够判断冲突是否发生并提出取代算法。
    (2)折叠法:这种方法是针对原始值为数字时使用,将原始值分为若干部分,然后将各部分叠加,得到的最后四个数字(或者取其他位数的数字都可以)来作为哈希值。
    (3)基数转换法:当原始值是数字时,可以将原始值的数制基数转为一个不同的数字。例如,可以将十进制的原始值转为十六进制的哈希值。为了使哈希值的长度相同,可以省略高位数字。
    (4)数据重排法:这种方法只是简单的将原始值中的数据打乱排序。比如可以将第三位到第六位的数字逆序排列,然后利用重排后的数字作为哈希值。
    哈希函数并不通用,比如在数据库中用能够获得很好效果的哈希函数,用在密码学或错误校验方面就未必可行。在密码学领域有几个著名的哈希函数。这些函数包括MD2、MD4以及MD5,利用散列法将数字签名转换成的哈希值称为信息摘要(message-digest),另外还有安全散列算法(SHA),这是一种标准算法,能够生成更大的(60bit)的信息摘要,有点儿类似于MD4算法。[1] 

    文件的hash值

    大家都知道emule是基于P2P (Peer-to-peer的缩写,指的是对等体网络下客户到客户文件传输的软件), 它采用了"多源文件传输协议”(MFTP,the Multisource FileTransfer Protocol)。在协议中,定义了一系列传输、压缩和打包还有积分的标准,emule 对于每个文件都有md5-hash的算法设置,这使得该文件独一无二,并且在整个网络上都可以追踪得到。
    MD5-Hash-文件的数字文摘通过Hash函数计算得到。不管文件长度如何,它的Hash函数计算结果是一个固定长度的数字。与加密算法不同,这一个Hash算法是一个不可逆的单向函数。采用安全性高的Hash算法,如MD5、SHA时,两个不同的文件几乎不可能得到相同的Hash结果。因此,一旦文件被修改,就可检测出来。
    当我们的文件放到emule里面进行共享发布的时候,emule会根据hash算法自动生成这个文件的hash值,他就是这个文件唯一的身份标志,它包含了这个文件的基本信息,然后把它提交到所连接的服务器。当有他人想对这个文件提出下载请求的时候, 这个hash值可以让他人知道他正在下载的文件是不是就是他所想要的。尤其是在文件的其他属性被更改之后(如名称等)这个值就更显得重要。而且服务器还提供了,这个文件当前所在的用户的地址,端口等信息,这样emule就知道到哪里去下载了。
    一般来讲我们要搜索一个文件,emule在得到了这个信息后,会向被添加的服务器发出请求,要求得到有相同hash值的文件。而服务器则返回持有这个文件的用户信息。这样我们的客户端就可以直接的和拥有那个文件的用户沟通,看看是不是可以从他那里下载所需的文件。
    对于emule中文件的hash值是固定的,也是唯一的,它就相当于这个文件的信息摘要,无论这个文件在谁的机器上,他的hash值都是不变的,无论过了多长时间,这个值始终如一,当我们在进行文件的下载上传过程中,emule都是通过这个值来确定文件。

    hash文件

    我们经常在emule日志里面看到,emule正在hash文件,这里就是利用了hash算法的文件校验性这个功能了,文章前面已经说了一些这些功能,其实这部分是一个非常复杂的过程,在ftp,bt等软件里面都是用的这个基本原理,emule里面是采用文件分块传输,这样传输的每一块都要进行对比校验,如果错误则要进行重新下载,这期间这些相关信息写入met文件,直到整个任务完成,这个时候part文件进行重新命名,然后使用move命令,把它传送到incoming文件里面,然后met文件自动删除,所以我们有的时候会遇到hash文件失败,就是指的是met里面的信息出了错误不能够和part文件匹配,另外有的时候开机也要疯狂hash,有两种情况一种是你在第一次使用,这个时候要hash提取所有文件信息,还有一种情况就是上一次你非法关机,那么这个时候就是要进行排错校验了。
    关于hash的算法研究,一直是信息科学里面的一个前沿,尤其在网络技术普及的今天,他的重要性越来越突出,其实我们每天在网上进行的信息交流安全验证,我们在使用的操作系统密钥原理,里面都有它的身影,特别对于那些研究信息安全有兴趣的朋友,这更是一个打开信息世界的钥匙,他在hack世界里面也是一个研究的焦点。

    userhash

    道理同上,当我们在第一次使用emule的时候,emule会自动生成一个值,这个值也是唯一的,它是我们在emule世界里面的标志,只要你不卸载,不删除config,你的userhash值也就永远不变,积分制度就是通过这个值在起作用,emule里面的积分保存,身份识别,都是使用这个值,而和你的id和你的用户名无关,你随便怎么改这些东西,你的userhash值都是不变的,这也充分保证了公平性。其实他也是一个信息摘要,只不过保存的不是文件信息,而是我们每个人的信息。

    散列表

    编辑
    散列表散列函数的一个主要应用,使用散列表能够快速的按照关键字查找数据记录。(注意:关键字不是像在加密中所使用的那样是秘密的,但它们都是用来“解锁”或者访问数据的。)例如,在英语字典中的关键字是英文单词,和它们相关的记录包含这些单词的定义。在这种情况下,散列函数必须把按照字母顺序排列的字符串映射到为散列表的内部数组所创建的索引上。
    散列表散列函数的几乎不可能/不切实际的理想是把每个关键字映射到唯一的索引上(参考完美散列),因为这样能够保证直接访问表中的每一个数据。
    一个好的散列函数(包括大多数加密散列函数)具有均匀的真正随机输出,因而平均只需要一两次探测(依赖于装填因子)就能找到目标。同样重要的是,随机散列函数几乎不可能出现非常高的冲突率。但是,少量的可以估计的冲突在实际状况下是不可避免的(参考生日悖论)。
    在很多情况下,heuristic散列函数所产生的冲突比随机散列函数少的多。Heuristic函数利用了相似关键字的相似性。例如,可以设计一个heuristic函数使得像FILE0000.CHK,FILE0001.CHK,FILE0002.CHK,等等这样的文件名映射到表的连续指针上,也就是说这样的序列不会发生冲突。相比之下,对于一组好的关键字性能出色的随机散列函数,对于一组坏的关键字经常性能很差,这种坏的关键字会自然产生而不仅仅在攻击中才出现。性能不佳的散列函数表意味着查找操作会退化为费时的线性搜索。

    扩展

    编辑
    MD5、SHA1的破解
    2004年8月17日,在美国加州圣芭芭拉召开的国际密码大会上,山东大学王小云教授在国际会议上首次宣布了她及她的研究小组的研究成果——对MD5、HAVAL-128、MD4和RIPEMD四个著名密码算法的破译结果。次年二月宣布破解SHA-1密码。

    命令描述

    编辑
    Linux命令——hash
    hash命令用来显示、添加和清除哈希表。该命令的语法格式如下所示。

    语法

    hash [-l] [-r] [-p <path> <name>] [-t <command>]

    选项说明

    选项
    说明
    -l
    显示哈希表,包括路径
    -r
    清除哈希表
    -p <path> <name>
    向哈希表中增加内容
    -t <command>
    显示指定命令的完整路径

    HASH命令

    hash 每次传输完数据缓冲区中的数据后就显示一个#号

    休闲活动

    编辑
    HASH全称是“Hash House Harriers”(简称“Hash"、“HHH”,或“ 3H
    ” ),是一项世界性的休闲活动,起源于1938年马来西亚的吉隆坡,如今在全世界184个国家几千个城市中都有开展,包括中国的北京、广州、上海、深圳、乌鲁木齐等城市。
    Hash活动没有固定的成员和组织,也不存在固定的模式,各个城市的具体做法各有不同,但所有的hash都有两个共同的主题:跑步和啤酒,其参加者也因此自称“The drinking club with a running problem”。经过几十年的发展,hash活动已经超越简单的体育锻炼活动,而形成了一种特色鲜明、独具魅力的文化。

    精神

    编辑
    Hash中最重要的一件事就是跑步,而且是有趣味、有难度的跑步。每次活动都有一两名参加者志愿充当“兔子”(hare)的角色,事先在野外设置好错综复杂的路线,而自称为猎狗(harriers)的参加者则追踪而至,顶着烈日骄阳或淋着瓢泼大雨,寻找兔子留下的蛛丝马迹。不论是攀山越岭还是涉水过河,是披荆斩棘还是踏污踩粪,只要是兔子布下的路线,猎狗们就义无反顾地一跑到底,决不偷工减料。这样一两个小时跑下来,不仅锻炼了身体,更磨炼了意志。猎狗们在追踪过程中,每到一个岔路口,都需要分工协作,分头找路,才能最快地找到正确的道路。而遇上沟沟坎坎或荆棘刺丛的时候,参加者更是会伸出手来互相帮助。如果有人迷了路,他不仅会经历一次对自己应变能力的挑战,更将体会到同伴在寻找他的过程中表现出来的团结和友爱。

    生活态度

    编辑
    在钢筋混凝土丛林中忙碌的现代人最需要的就是贴近自然,放松紧张的身心,而这也正是参加hash的人们所推崇的生活方式。
    幽默可是说是全世界hash参加者的共性。他们最擅长的就是自嘲——自称为“猎狗”,海口的hash参加者还自称为“害虫”,每个人有一个可笑甚至恶心的外号,比如“卖女孩的小火柴”、“肉肉”、“肮脏的鱼”等等。唱歌、讲故事、说笑话、相互捉弄、插科打诨……每一次hash活动都充满欢笑和快乐。
    看看沾满泥水的跑鞋和挂满草刺的小腿,畅饮一口冰啤酒高歌一曲,不由得豪气顿生,早不见了办公室里拘谨刻板的模样。新老朋友一起在空旷的野外大声喊叫,放肆地说笑话逗乐子,纵情地歌唱和欢笑,在音乐声中又闹又跳,疲倦的是躯体,而心灵得到了彻底的放松。
    Hash活动过程中不准从事商业活动,不准打手机,不准谈工作,所有参加者都以绰号互称,远离铜臭气和复杂的人事关系,为纯真的友谊提供了生长的环境。难怪Hash里面许多人成了意气相投的好朋友之后,才猛然发现原来自己连对方是做什么生意的、有没有结婚都不知道。
    Hash活动不以营利为目的,每次活动的结余归入基金供大活动时支出;所有工作都由参加者齐心协力地完成;每期的兔子可以按自己的意愿自由地组织一次跑步。这正是hash的魅力所在:为参加者提供一个可以尽情展现真我的机会。
    正是出于对大自然的热爱,Hash参加者们对环境保护尤为重视。空瓶空罐绝对不允许乱扔、垃圾袋必须是可降解塑料做的、不准拈花惹草、不得踩坏庄稼、等等,这些规矩都是每一位hash参加者严格恪守,并在生活中也身体力行的。海口hash的参加者还曾组织过在五指山顶、亚龙湾、尖峰岭等风景点清理垃圾的活动。

    活动

    编辑

    独有的文化

    Hash活动不仅仅是体育休闲活动。Hash参加者强烈的表现欲在这一宽松的环境中得到鼓励和张扬。他们创造了种种个性鲜明的hash徽标,改编了上千首hash歌曲,制作了不计其数的、风格各异的T恤、帽子、杯垫,出版了大量或精美或简陋然而同样精彩的hash杂志、报纸、宣传册,在Internet上,只要输入“hash”或者“hhh”进行搜索,可以发现成百上千个hash网站。可以说,hash已经有了自己的文化。参加过hash活动后,有人可能会不喜欢这种文化,可是没有人会忘记这样一种文化。它自有它独特的、令人无法忘怀的风味。

    衍生文化

    在衍生出自己的文化之外,Hash活动从一开始就体现了不同文化的碰撞和交流。第一次hash跑步,就是由旅居马来西亚的英国人组织的。世界各地的hash,吸引了各种各样不同文化的人参加,尤其是旅居当地的外国人。这一点在英美之外的国家的hash中特别明显。因此,hash除了带有明显的英美文化气息外,还成了各种文化交汇融合的活动。像在中国的大多数hash,就成了各种外国人和中国人共同喜爱的活动,英语成为主要的交流手段,而他们的徽标、T恤设计中却透着浓郁的中国文化气息。Hash还是一个全球性的休闲活动,除了各地自有的hash活动,还有定期举行的“泛亚hash”、“泛太平洋hash”等等区域性的活动,每四年还有一次“全球hash”。这种大规模的hash,更是云集来自世界各地的爱好者,无形中也就是一次文化的盛会。Hash活动于生俱来的宽容和自由的特性,为各种不同文化背景的参加者提供了一个平等、宽松、随意、自由发挥的环境。所有的参加者自由地来,自由地去,各人对各人的言行和安全负责,不论国籍、年龄、种族、肤色、职业、教育程度如何,都只是“猎狗”或者“兔子”这两种角色之一种,以绰号相称,甚至真名都不为人知。在“跑步”和“啤酒”这两个主题下,参加者们彻底放下面子和成见,打破各种人为的隔阂和壁垒,真正玩到一块儿,发展友谊,取长补短,尽情展现各自的风采。

     

    海口

    编辑
    海口的hash
    海口的hash最早也是由外国人发起,除了旅居海口的外国人,还吸引了许多外企的白领和英语爱好者参加。后来由于爱好hash的外国人逐渐离开海口,参加海口hash的主要是中国人,其中大部分是旅居海口的内地人。Hash本身的渊源、活动形式及其精神都带有浓厚的西方文化色彩,必然会对其参与者造成一定的影响,而中国古老的文化也给海口hash烙上独特的印迹。
    海口hash的参与者有老有少、有男有女,分别来自社会各个层面,有着不同的文化素养和人生观。他们来参加hash,不仅面对hash本身具有的西方文化的冲击,而且也面临着相互间不同观念带来的冲突。但只要是热爱运动和自然的人,在接受hash的同时,也就会接受hash宽容、自由的氛围及其多姿多彩的文化,自然也就会变得更宽容、更善于理解他人。
    正是由于hash具有这样独特的文化魅力,这项休闲活动才持续了近70年而不衰,风靡全球几千个城市,受到各界的广泛关注。尤其是定期举行的跨地区的hash,比如环亚太地区的hash,或者环东南亚的hash,每次都在不同的城市举行,对于举办城市来说,这无疑是当地旅游业发展的一次良好契机。

    哈希公司

    编辑
    Hach公司成立于1947年,总部位于美国科罗拉多州的Loveland市,是全球领先的水质分析解决方案的提供商。1999年,Hach公司加入美国Danaher(丹纳赫)集团,Danaher集团下属的一级子公司。Danaher集团是一家在美国纽约交易所上市的公司,旗下主要有 6大战略平台,分别是环境、手工工具、运动控制、医疗、产品标识和电子测试,2008年全球销售额超过120亿美元。哈希公司作为全球首位的水质分析仪器仪表供应商,现已成为Danaher集团下最强有力的支柱品牌。
    Hach公司旗下拥有许多知名的专业品牌,包括GLI、American Sigma、Hydrolab、OTT、Radiometer、Lachat、Polymetron、Orbisphere、ELE等,工厂分别位于美国、德国、瑞士、法国和英国,并也在中国建立了生产基地。
    Hach公司的全系列产品包括实验室分析仪、便携式分析仪以及在线分析仪、水质自动采样器、流量计等,我们致力于为纯水/超纯水、饮用水、市政污水、工业废水、工业循环水、环境监测以及高校科研等各个领域的用户提供最优的水质监测解决方案。我们非常注重技术革新,致力于为用户提供高精度的仪器和专家级的服务,公司在美洲、欧洲和亚洲都有强大的研发团队。我们已获得的专利多达527项,覆盖了130多个专利家族,同时还拥有超过100种的哈希测试方法被美国EPA所认可。我们的LDO荧光法溶解氧测定技术是水质分析领域内的一项重大突破。Guardian Blue管网水质监测系统也曾经获得R&D杂志评选的100个最重要的技术研发新产品之一的大奖。
    为了更贴近中国市场,更好的满足中国用户的需求,也为了帮助越来越多的国内用户解决他们在水质监测领域所遇到的问题,哈希公司已经开始了产品本地化的工作,在保证产品质量的同时减少了众多复杂的工作环节,从而使更多的客户可以使用到哈希公司领先技术的高质量产品。哈希公司非常注重中国用户的需求,专为中国市场量身定做的CODmax铬法COD分析仪、1900C便携式浊度仪和DR1010 COD测定仪等产品以其卓越的产品技术与质量受到了广大用户的青睐。本地化的生产越来越方便客户,使得产品的交货期缩短并可以享受到便捷及时的售后服务支持
  • 相关阅读:
    httpcontext in asp.net unit test
    initialize or clean up your unittest within .net unit test
    Load a script file in sencha, supports both asynchronous and synchronous approaches
    classes system in sencha touch
    ASP.NET MVC got 405 error on HTTP DELETE request
    how to run demo city bars using sencha architect
    sencha touch mvc
    sencha touch json store
    sencha touch jsonp
    51Nod 1344:走格子(贪心)
  • 原文地址:https://www.cnblogs.com/yg6405816/p/5539145.html
Copyright © 2011-2022 走看看