From 2f20868ca6637a9843c77213f4793b7a339d9972 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Tue, 25 Mar 2025 13:12:02 +0800 Subject: [PATCH] fix: handle empty message case in encryption function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1053881 --user=刘瑞斌 【函数库】-编辑函数,修改启动参数的必填选项后,保存函数报错 https://www.tapd.cn/57709429/s/1675682 --- .../serializers/function_lib_serializer.py | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/apps/function_lib/serializers/function_lib_serializer.py b/apps/function_lib/serializers/function_lib_serializer.py index 429c2704f..c8b715b75 100644 --- a/apps/function_lib/serializers/function_lib_serializer.py +++ b/apps/function_lib/serializers/function_lib_serializer.py @@ -39,26 +39,28 @@ class FlibInstance: self.version = version def encryption(message: str): - """ - 加密敏感字段数据 加密方式是 如果密码是 1234567890 那么给前端则是 123******890 - :param message: - :return: - """ - max_pre_len = 8 - max_post_len = 4 - message_len = len(message) - pre_len = int(message_len / 5 * 2) - post_len = int(message_len / 5 * 1) - pre_str = "".join([message[index] for index in - range(0, - max_pre_len if pre_len > max_pre_len else 1 if pre_len <= 0 else int( - pre_len))]) - end_str = "".join( - [message[index] for index in - range(message_len - (int(post_len) if pre_len < max_post_len else max_post_len), - message_len)]) - content = "***************" - return pre_str + content + end_str + """ + 加密敏感字段数据 加密方式是 如果密码是 1234567890 那么给前端则是 123******890 + :param message: + :return: + """ + if message == "": + return "" + max_pre_len = 8 + max_post_len = 4 + message_len = len(message) + pre_len = int(message_len / 5 * 2) + post_len = int(message_len / 5 * 1) + pre_str = "".join([message[index] for index in + range(0, + max_pre_len if pre_len > max_pre_len else 1 if pre_len <= 0 else int( + pre_len))]) + end_str = "".join( + [message[index] for index in + range(message_len - (int(post_len) if pre_len < max_post_len else max_post_len), + message_len)]) + content = "***************" + return pre_str + content + end_str class FunctionLibModelSerializer(serializers.ModelSerializer):