哈希 ------- 哈希函数通过 ``suricata.hashing`` 库暴露给 Lua 脚本使用。例如:: local hashing = require("suricata.hashing") SHA-256 ~~~~~~~ ``sha256_digest(string)`` ^^^^^^^^^^^^^^^^^^^^^^^^^ 对提供的字符串进行 SHA-256 哈希计算,返回字节形式的摘要。 ``sha256_hex_digest(string)`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 对提供的字符串进行 SHA-256 哈希计算,返回十六进制字符串形式的摘要。 ``sha256()`` ^^^^^^^^^^^^ 返回一个可多次更新的 SHA-256 哈希计算器,例如:: local hashing = require("suricata.hashing") hasher = hashing.sha256() hasher.update("www.suricata") hasher.update(".io") hash = hasher.finalize_to_hex() 哈希计算器对象的方法包括: * ``update(string)``: 向哈希计算器添加更多数据 * ``finalize()``: 完成哈希计算,返回字节字符串形式的哈希值 * ``finalize_to_hex()``: 完成哈希计算,返回十六进制字符串形式的哈希值 SHA-1 ~~~~~ ``sha1_digest(string)`` ^^^^^^^^^^^^^^^^^^^^^^^ 对提供的字符串进行 SHA-1 哈希计算,返回字节形式的摘要。 ``sha1_hex_digest(string)`` ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 对提供的字符串进行 SHA-1 哈希计算,返回十六进制字符串形式的摘要。 ``sha1()`` ^^^^^^^^^^ 返回一个可多次更新的 SHA-1 哈希计算器,例如:: local hashing = require("suricata.hashing") hasher = hashing.sha1() hasher.update("www.suricata") hasher.update(".io") hash = hasher.finalize_to_hex() 哈希计算器对象的方法包括: * ``update(string)``: 向哈希计算器添加更多数据 * ``finalize()``: 完成哈希计算,返回字节字符串形式的哈希值 * ``finalize_to_hex()``: 完成哈希计算,返回十六进制字符串形式的哈希值 MD5 ~~~ ``md5_digest(string)`` ^^^^^^^^^^^^^^^^^^^^^^ 对提供的字符串进行 MD5 哈希计算,返回字节形式的摘要。 ``md5_hex_digest(string)`` ^^^^^^^^^^^^^^^^^^^^^^^^^^ 对提供的字符串进行 MD5 哈希计算,返回十六进制字符串形式的摘要。 ``md5()`` ^^^^^^^^^ 返回一个可多次更新的 MD5 哈希计算器,例如:: local hashing = require("suricata.hashing") hasher = hashing.md5() hasher.update("www.suricata") hasher.update(".io") hash = hasher.finalize_to_hex() 哈希计算器对象的方法包括: * ``update(string)``: 向哈希计算器添加更多数据 * ``finalize()``: 完成哈希计算,返回字节字符串形式的哈希值 * ``finalize_to_hex()``: 完成哈希计算,返回十六进制字符串形式的哈希值