基本上不需要您制作自己的加密/解密方法。我能问一下你为什么要加密它吗?是因为你有这种情况吗?
http://url/controller/id1
http://url/controller/id2
因此,如果有其他加密替代方案,您加密的原因将是阻止其他人浏览其他请求。作为一个例子,我正在做类似的事情,但不是所有的加密开销,我已经做到了,所以如果提供了 id,它还必须提供该 id 的用户名
http://url/controller/id1?username=username
http://url/controller/id1?username=username2
当我获得 ID 时,我还会检查是否有用户名参数以及用户名是否与 id 用户名匹配 - 这会阻止其他人通过链接进行巨魔
如果您仍想加密,请告诉我,我可以提供更多指导
def MyController {
def index() {
if (params.id) {
params.id=Md5Helper.translate(params.id)
}
}
}
在src/groovy/main/{package}/Md5Helper.groovy
class Md5Helper.groovy {
//return deconverted string into Long value
public static Long translate(String input) {
//do your md5 decryption here
if (result.isNumber()) {
return result as Long
}
return 0L
}
//override so when default Long is sent just return it
public static Long translate(Long input) {
return input
}
}
如果高于 grails 2.4 并完成工作,则 CompileStatic 助手类
摆脱 md5 加密并使用可以更改的密钥使用适当的内部加密/解密,使其无法被最终用户加密,请参阅https://github.com/vahidhedayati/md5id/