java中url加密处理

java中url加密处理packagetest importjava security Key importjava security SecureRandom importjavax crypto Cipher importjavax crypto KeyGenerator importsun misc BASE64Decode importsun misc BASE64Encode

package test; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; public class ThreeDES { public static String crypt(String content,String password,int i){ try { KeyGenerator generator = KeyGenerator.getInstance("AES"); generator.init(new SecureRandom(password.getBytes())); Key key = generator.generateKey(); generator = null; if(i == 1){ return getEncString(content,key); } else if(i == 2){ return getDesString(content,key); } } catch (Exception e) { return null; } return null; } / * 加密String明文输入,String密文输出 * * @param strMing * @return */ private static String getEncString(String strMing,Key key) { byte[] byteMi = null; byte[] byteMing = null; String strMi = ""; BASE64Encoder base64en = new BASE64Encoder(); try { byteMing = strMing.getBytes("UTF8"); byteMi = getEncCode(byteMing,key); strMi = base64en.encode(byteMi); } catch (Exception e) { e.printStackTrace(); } finally { base64en = null; byteMing = null; byteMi = null; } return strMi; } / * 解密 以String密文输入,String明文输出 * * @param strMi * @return */ private static String getDesString(String strMi, Key key) { BASE64Decoder base64De = new BASE64Decoder(); byte[] byteMing = null; byte[] byteMi = null; String strMing = ""; try { byteMi = base64De.decodeBuffer(strMi); byteMing = getDesCode(byteMi,key); strMing = new String(byteMing, "UTF8"); } catch (Exception e) { e.printStackTrace(); } finally { base64De = null; byteMing = null; byteMi = null; } return strMing; } / * 加密以byte[]明文输入,byte[]密文输出 * * @param byteS * @return */ private static byte[] getEncCode(byte[] byteS,Key key) { byte[] byteFina = null; Cipher cipher; try { cipher = Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, key); byteFina = cipher.doFinal(byteS); } catch (Exception e) { e.printStackTrace(); } finally { cipher = null; } return byteFina; } / * 解密以byte[]密文输入,以byte[]明文输出 * * @param byteD * @return */ private static byte[] getDesCode(byte[] byteD,Key key) { Cipher cipher; byte[] byteFina = null; try { cipher = Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, key); byteFina = cipher.doFinal(byteD); } catch (Exception e) { e.printStackTrace(); } finally { cipher = null; } return byteFina; } public static void main(String[] args) { System.out.println(ThreeDES.crypt("bindMobile=&fenjihao=107", "bbbbb", 1)); System.out.println(ThreeDES.crypt("GT+F0fcFNGiq73/+FaX9pK9n9zqxwqz9sZ7MQdSp1BxWJXWn7EwnvniQpAOaGi0W", "bbbbb", 2)); } }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233373.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高通IMEI写入最新版_博思得g3106打印机设置

    高通IMEI写入最新版_博思得g3106打印机设置检查自己写的pdaf驱动是否正确主要就是依据打印出来的pdaflog,那如果log出不来肯定是有问题的,接下来说下如何排查问题:1:首先我们要检查sensor驱动h文件有没有打开pdaf,如果没有打开pdaf的log肯定出不来的。2:然后要检查otp驱动是否加载正确,因为otp中有pdaf相关的校正。3:效果目录3A文件的log有没有打开(举个例子)sen

    2022年9月3日
    2
  • PID控制详解[通俗易懂]

    PID控制详解[通俗易懂]PID控制详解一、PID控制简介PID(ProportionalIntegralDerivative)控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒性好和可靠性高,被广泛应用于工业过程控制,尤其适用于可建立精确数学模型的确定性控制系统。在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节,它实际上是一种算法。PID控制器问…

    2022年6月10日
    49
  • pycharm设置项目路径_vscode和pycharm区别

    pycharm设置项目路径_vscode和pycharm区别#-*-coding=utf-8-*-#@Time:${DATE}${TIME}#@Author:Donvink${USER}#@Site:${SITE}#@File:${NAME}.py#@Software:${PRODUCT_NAME}

    2022年8月25日
    3
  • ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)语法格式:row_number()over(partitionby分组列orderby排序列desc)row_number()over()分组排序功能:在使用row_number()over()函数时候,over()里头的分组以及排序的执行晚于where、groupby、orderby的执行。例一:表数据:createtableTEST_…

    2022年4月26日
    53
  • 高级SQL查询-(聚合查询,分组查询,联合查询)[通俗易懂]

    高级SQL查询-(聚合查询,分组查询,联合查询)[通俗易懂]高级SQL查询-(聚合查询,分组查询,联合查询)

    2022年6月1日
    32
  • J2EE是什么意思_main()函数是java程序的执行入口

    J2EE是什么意思_main()函数是java程序的执行入口j2ee   J2EE简介  J2EEJava2平台企业版(Java2Platform,EnterpriseEdition)   J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。   J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依

    2022年10月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号