像Chat-GPT服务,接口鉴权就使用一个简单的Key,而不使用appId和appKey的模式。那这个key到底有什么神奇之处呢?为什么可以鉴权呢?
这个key是根据复杂的规则生成的,随便修改一个或几个字母是不可能有效的,甚至不知道规则的暴力破解也不奏效。
现在,我也需要生成一个类似的key,这个key能提供给用户离线使用,封装进程序,用户在不能破解应用源代码的前提下,必须使用这个key才能使用离线应用。
自定义key的生成规则,详见下文代码。
KeyHelper
KeyHelper提供生成和验证key的方法
1 | import com.btsi.bcos.base.utils.Calc256HashUtil; |
Calc256HashUtil
1 | import lombok.extern.slf4j.Slf4j; |
UuidGenerateUtil
1 | import java.util.UUID; |
KeyServiceImpl
1 | import com.btsi.bcos.base.key.KeyHelper; |