哈希函数代码
时间: 2023-08-06 22:22:33 浏览: 47
这里是一个简单的哈希函数代码示例,使用了 Python 语言实现:
```python
def hash_func(key, size):
# 将 key 转换为整数
num_key = int(key)
# 计算哈希值
hash_value = num_key % size
return hash_value
```
这个哈希函数接受两个参数:key 和 size。key 是要进行哈希的值,size 是哈希表的大小。该函数首先将 key 转换为整数,然后通过取模运算计算出哈希值。最后将哈希值返回。
相关问题
Python哈希函数代码
以下是一些Python中常见的哈希函数示例:
1. MD5哈希函数
```python
import hashlib
# 原始字符串
string = "Hello World!"
# 使用MD5哈希函数
hash_object = hashlib.md5(string.encode())
# 输出哈希值
print(hash_object.hexdigest())
```
2. SHA256哈希函数
```python
import hashlib
# 原始字符串
string = "Hello World!"
# 使用SHA256哈希函数
hash_object = hashlib.sha256(string.encode())
# 输出哈希值
print(hash_object.hexdigest())
```
3. HMAC哈希函数
```python
import hmac
# 原始字符串
string = "Hello World!"
key = "my-secret-key"
# 使用HMAC哈希函数
hash_object = hmac.new(key.encode(), string.encode())
# 输出哈希值
print(hash_object.hexdigest())
```
这些示例使用Python内置的`hashlib`和`hmac`模块提供的函数。您可以根据需要选择不同的哈希函数,并调整输入字符串和密钥以生成不同的哈希值。注意,哈希函数是不可逆的,因此您不能从哈希值中恢复原始数据。
折叠法哈希函数代码C语言
以下是一个简单的折叠哈希函数的C语言实现:
```c
#include <stdio.h>
#include <string.h>
unsigned int folding_hash(char* str, int table_size) {
unsigned int hash_val = 0;
int len = strlen(str);
int i;
for (i = 0; i < len; i += 4) {
hash_val += str[i];
hash_val = hash_val << 8;
if (i + 1 < len) {
hash_val += str[i + 1];
hash_val = hash_val << 8;
}
if (i + 2 < len) {
hash_val += str[i + 2];
hash_val = hash_val << 8;
}
if (i + 3 < len) {
hash_val += str[i + 3];
hash_val = hash_val << 8;
}
}
return hash_val % table_size;
}
int main() {
char* str = "hello world";
int table_size = 100;
printf("%d\n", folding_hash(str, table_size));
return 0;
}
```
该函数将输入字符串分成4个字符块,并将它们相加,然后使用模运算来返回哈希表中的索引位置。如果输入字符串的长度不是4的倍数,则最后一块可能短于4个字符。