为什么Long类型字段返回前端之前都要被IdUtil加密?

来源:2-4 基于SpringBoot初始化项目

洛奇2019

2023-05-28

/**
 * Id自动加密的JSON序列化器
 * 用于返回实体Long类型ID字段的自动序列化
 */
public class IdEncryptSerializer extends JsonSerializer<Long> {
    /**
     * Method that can be called to ask implementation to serialize
     * values of type this serializer handles.
     *
     * @param value       Value to serialize; can <b>not</b> be null.
     * @param gen         Generator used to output resulting Json content
     * @param serializers Provider that can be used to get serializers for
     *                    serializing Objects value contains, if any.
     */
    @Override
    public void serialize(Long value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        if (Objects.isNull(value)) {
            gen.writeString(StringUtils.EMPTY);
        } else {
            gen.writeString(IdUtil.encrypt(value));
        }
    }

}

没明白这个序列化器的用意,Long类型不加密会怎样?

写回答

1回答

RubinChu

2023-05-28

因为这个涉及到数据的id 出于安全考虑 要做一次加密 而且 long 类型太长前端会做截断 综合原因 就在返回之前加密了

0
4
RubinChu
回复
再坚持坚持一下
有这个考虑,然后加上了安全的考虑哈
2023-08-17
共4条回复

SpringBoot+Vue3+Element Plus打造私人分布式存储系统

SpringBoot+Vue3+Element Plus 仿百度网盘实战

277 学习 · 357 问题

查看课程