tidb哪个版本支持自定义加解密(国密算法)的UDF函数?

请问tidb哪个版本开始支持自定义加解密(国密算法)的UDF函数?如果不支持自定义UDF函数,有其他方式实现国密算法的加密和解密吗?

企业版支持,社区版不支持~

1 个赞

是企业版功能哟~

1 个赞

自定义UDF社区版也不支持吗?

社区版也不支持自定义的UDF函数是吗?

UDF不支持.

另外国密算法里面sm3/sm4的支持情况看下面这个链接。

https://docs.pingcap.com/zh/tidb/stable/release-6.3.0/#安全

在应用层对字段做的加密保存到tidb。 国密的密钥key是保密的,不能直接配在tidb上。用GO语言写UDF注册到tidb,调外部的http接口解密可行吗?

这个文档的后续,我在另一个帖子看到了,确实走不下去的。

就是走下去了效率上,确实饶了大圈子,居然还用go调用http接口,去java/python里面转了一圈。这就是注册成功,也很慢的。

我记得tidb自己在sm4的文档里面说过,选这个静态加密方法,可能造成大比例的性能回退。

https://docs.pingcap.com/zh/tidb/stable/encryption-at-rest/#tikv

SM4 加密只在 v6.3.0 及之后版本的 TiKV 上支持。v6.3.0 之前的 TiKV 仅支持 AES 加密。SM4 加密会对性能造成影响:最严重的情况下,会对吞吐造成 50% 到 80% 的回退;storage.block-cache 足够大会显著降低加密对吞吐的影响,可将吞吐的回退降至 10% 左右。

这还是在tikv支持sm4的情况下,如果你这样绕一大圈,性能回退只会更加厉害。

你就在外面直接把字段加密好,再存进数据库不行么?

现在是加密好了存进去了,想在写sql查询的时候直接看解密的明文。主要是想实现解密

1 个赞

可以用AES加密解密

https://docs.pingcap.com/zh/tidb/stable/encryption-and-compression-functions/#支持的函数

明白了。

考虑下来我真觉得你应该考虑一下sm4的静态加密,另外这个sm4启用以后的性能回退问题要和老板商量一下的。

这个方案对你来说才是比较彻底的,当然也是改动会比较大的。

目前其他方案感觉都比较难以走下去。除非放弃sm4,用aes之类的代价会低很多。你也省事。