clickhouse sha256 函数

MYSQL中的sha256函数返回64位字符串。
mysql> select sha2('a',256);
+------------------------------------------------------------------+
| sha2('a',256)                                                           |
+------------------------------------------------------------------+
| ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb |
+------------------------------------------------------------------+

clickhouse中SHA256函数默认返回的是个32位的字符串,与MYSQL中的sha256函数返回结果并不相同。
SELECT
    length(SHA256('a')) AS len,
    SHA256('a') AS hex_str;
┌─len─┬─sha256_str──┐
│  32     │ ʗ1M|Nr          │
└────┴──────────┘


如果想得到与MYSQL中的sha256函数相同的结果,需要做个转换。
SELECT lower(hex(SHA256('a'))) AS sha256_str;
┌─sha256_str───────────────────────────────────────────────────────┐
│ ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb                                      │
└───────────────────────────────────────────────────────────────┘

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sha256哈希函数是利用Python的hashlib库实现的。可以使用sha256()方法来生成字符串或文件的哈希值。引用中给出了生成字符串和文件哈希值的示例代码。 如果要生成字符串的sha256哈希值,可以使用generate_sha256_hashCode()函数,将需要哈希的字符串作为参数传入。函数内部会对字符串进行编码,并使用sha256算法进行加密,最后返回哈希值。示例代码如下: ```python from hashlib import sha256 def generate_sha256_hashCode(plainText): plainTextBytes = plainText.encode('utf-8') encryptor = sha256() encryptor.update(plainTextBytes) hashCode = encryptor.hexdigest() return hashCode if __name__ == "__main__": print(generate_sha256_hashCode('123')) ``` 如果要生成文件的sha256哈希值,可以使用相似的方法。首先使用open()函数打开文件,并读取文件内容。然后对文件内容进行编码,并使用sha256算法进行加密,最后返回哈希值。示例代码如下: ```python from hashlib import sha256 def generate_sha256_hashCode(filePath): with open(filePath, encoding="utf-8") as f: plainText = f.read() plainTextBytes = plainText.encode('utf-8') encryptor = sha256() encryptor.update(plainTextBytes) hashCode = encryptor.hexdigest() return hashCode if __name__ == "__main__": print(generate_sha256_hashCode('test.txt')) ``` 另外,如果想使用md5算法生成哈希值,可以使用类似的方法。可以先导入hashlib库,然后使用sha256()方法替换为md5()方法即可。引用中给出了使用md5生成哈希值的示例代码。 ```python import hashlib password = 'wotemo666' hash_password = hashlib.md5(password.encode("utf-8")).hexdigest() print(hash_password) ``` 总结来说,sha256哈希函数是通过使用hashlib库中的sha256()方法来实现的,可以生成字符串和文件的哈希值。而md5哈希函数可以使用hashlib库中的md5()方法来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【Python】使用Python实现sha256、md5等加密算法生成哈希值](https://blog.csdn.net/aidijava/article/details/127145370)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [用python的哈希函数对密码进行加密](https://blog.csdn.net/shr105/article/details/122799672)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值