资源简介
matlab开发-String2Hash。将字符串数组(文本)转换为哈希代码
代码片段和文件信息
function hash=string2hash(strtype)
% This function generates a hash value from a text string
%
% hash=string2hash(strtype);
%
% inputs
% str : The text string or array with text strings.
% outputs
% hash : The hash value integer value between 0 and 2^32-1
% type : Type of has ‘djb2‘ (default) or ‘sdbm‘
%
% From c-code on : http://www.cse.yorku.ca/~oz/hash.html
%
% djb2
% this algorithm was first reported by dan bernstein many years ago
% in comp.lang.c
%
% sdbm
% this algorithm was created for sdbm (a public-domain reimplementation of
% ndbm) database library. it was found to do well in scrambling bits
% causing better distribution of the keys and fewer splits. it also happens
% to be a good general hashing function with good distribution.
%
% example
%
% hash=string2hash(‘hello world‘);
% disp(hash);
%
% Function is written by D.Kroon University of Twente (June 2010)
% From string to double array
str=double(str);
if(nargin<2) type=‘djb2‘; end
switch(type)
case ‘djb2‘
hash = 5381*ones(size(str1)1);
for i=1:size(str2)
hash = mod(hash * 33 + str(:i) 2^32-1);
end
case ‘sdbm‘
hash = zeros(size(str1)1);
for i=1:size(str2)
hash = mod(hash * 65599 + str(:i) 2^32-1);
end
otherwise
error(‘string_hash:inputs‘‘unknown type‘);
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1422 2010-06-18 12:32 string2hash.m
文件 1314 2014-02-12 13:10 license.txt
评论
共有 条评论