[JSP]如何加密URL中.jsp?后面的参数?

问题描述:
我们公司有个线上签核系统,将申请人填写好的表单发送到主管的信箱,主管不需要登录,只需点击url即可查看到表单,现在问题是url中的参数都是显式的,这样别人只需修改参数就可以看到别的单子,所以想要加密url,不知该如何加密。
还有,能否实现当输入显式的URL(未加过密的url)时,禁止其访问?
我这是jsp,不是asp,请不要盲目copy网上的资料。
至于加密,我已经有了思路。
至于第二个问题有没有好的方法?

先将参数加密 然后在接收的时候解密

至于第二个问题,我想可以在加密的时候对数据长度进行处理,长度不符合逻辑的禁止访问,或者是加密的参数有特殊的关联,通过特殊标记判断是否符合标准,提交数据只能做到这一步了,其余的只能是服务器端解决了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-15
加密参数是jsp参数传递中的一种安全措施,加密方法如下:

建议使用对称加密如:DES或者是PBE算法。
加密算法如下:
public static String encrypt(String key, String plainText) throws Exception {
String encryptTxt = "";
try {
byte[] salt = new byte[8];
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(key.getBytes());
byte[] digest = md.digest();
for (int i = 0; i < 8; i++) {
salt[i] = digest[i];
}
PBEKeySpec pbeKeySpec = new PBEKeySpec(key.toCharArray());
SecretKeyFactory keyFactory = SecretKeyFactory
.getInstance("PBEWithMD5AndDES");
SecretKey skey = keyFactory.generateSecret(pbeKeySpec);
PBEParameterSpec paramSpec = new PBEParameterSpec(salt, ITERATIONS);
Cipher cipher = Cipher.getInstance("PBEWithMD5AndDES");
cipher.init(Cipher.ENCRYPT_MODE, skey, paramSpec);
byte[] cipherText = cipher.doFinal(plainText.getBytes());
String saltString = new String(Base64.encode(salt));
String ciphertextString = new String(Base64.encode(cipherText));
return saltString + ciphertextString;
} catch (Exception e) {
throw new Exception("Encrypt Text Error:" + e.getMessage(), e);
}
使用方法:
把jsp?后面的参数作为参数传入encrypt();然后就可以返回加密串了。
第2个回答  2007-05-24
那就没办法,以为你在网上找不到,帮找一个.说实在的,我不会,呵呵.
相似回答