- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
url加密解密完整解决方案
URL加密解密完整解决方案 采用: ? .URLEncoder.encode(Base64编码(加密字串), StringCode) 这样的方法来对url中的参数进行加密。 ? 首先我们先说一下如何加密。 ? 一、算法的选择: ? 对于像对url中的参数进行加密的过程,我不建议使用rsa或者是三重des这样的加密算法,主要原因在于性能和速度会受影响。 ? 我建议大家使用对称加密如:DES或者是PBE算法。 ? 我们在这边就使用PBEWithMD5AndDES来实现加密。 ? 二、加密原理 ? 对于一个纯文本,加密后它会变成一堆乱码,这堆乱码包括了许多非法字符,我们不希望把这些字符放入bean中,因此在加密完后,我们还要对加密结果进行base64编码。 ? PBE从字面上理解,它必须使用一个口令,我们不希望我们的加密过于复杂而影响页面跳转的速度,因此我们不采用口令+KEY的形式,我们这边的口令就是我们的KEY。 ? 因此: ? 我们的整个加密过程实现如下: ? 输入口令(KEY)-- 加密文本 -- 以base64对加密后的结果进行编码--以.URLEncoder.encode编码成浏览器可以识别的形式--传输给接受的action ? 而解密过程如下: ? 接受的action得到参数--以base64对结果进行解码--得到纯加密文本--解密--得到解密后的值 ? 三、BASE64 这边对于BASE64的原理不多说了,只说实现,目前网上有很多实现方式,有自己写的,有用sun.misc.*的,我们在这个例子里将使用ernet.MimeUtility自带的base64编码工具。 需要引入activation.jar和mail.jar两个包。 下面是具体的实现: import ernet.MimeUtility; public class Base64 {?public static byte[] encode(byte[] b) throws Exception {??ByteArrayOutputStream baos = null;??OutputStream b64os = null;??try {???baos = new ByteArrayOutputStream();???b64os = MimeUtility.encode(baos, base64);???b64os.write(b);???b64os.close();???return baos.toByteArray();??} catch (Exception e) {???throw new Exception(e);??} finally {???try {????if (baos != null) {?????baos.close();?????baos = null;????}???} catch (Exception e) {???}???try {????if (b64os != null) {?????b64os.close();?????b64os = null;????}???} catch (Exception e) {???}??}?} ?public static byte[] decode(byte[] b) throws Exception {??ByteArrayInputStream bais = null;??InputStream b64is = null;??try {???bais = new ByteArrayInputStream(b);???b64is = MimeUtility.decode(bais, base64);???byte[] tmp = new byte[b.length];???int n = b64is.read(tmp);???byte[] res = new byte[n];???System.arraycopy(tmp, 0, res, 0, n); ???return res;??} catch (Exception e) {???throw new Exception(e);??} finally {???try {????if (bais != null) {?????bais.close();?????bais = null;????}???} catch (Exception e) {???}???try {????if (b64is != null) {?????b64is.close();?????b64is = null;????}???} catch (Exception
文档评论(0)