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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java-计算器模板及源码

    java-计算器模板及源码java-计算器模板及源码计算器实现了大部分基础功能:基本运算,菜单栏选项,并且拓展了普通型和科学兴选项等等,读者可以在此基础上进行修改和拓展。其他具体实现方法可以看源码,里面有详细的概述,代码框架清晰。读者在阅读和引用过程中,如有问题欢迎评论区留言和私信交流。运行环境:win10EclipseIDEforJavaDevelopers-2020-06下面是计算器的视图:importjava.awt.*;importjava.awt.event.ActionEvent;im

    2022年7月19日
    13
  • c和Java的区别[通俗易懂]

    c和Java的区别[通俗易懂] 转 c和Java的区别 2017年12月24日20:45:32 lzr_jead 阅读数:166 Java和C语言的区别在哪里?设…

    2022年7月7日
    22
  • mysql 动态新建以及删除分区表

    因为项目需要,最近研究了一下在mysql数据库下如何动态新建以及删除分区表。如果全部借助存储过程的话,新建以及删除分区表在逻辑上比较死板、不灵活,而且还容易出错。因此,我新建了一个数据表table_f

    2021年12月21日
    49
  • pygame安装(超级详细)

    pygame安装(超级详细)安装时是需要设置python环境变量的,下载python的时候底下有个小框框(没有默认选中)AddPython3.7toPATH需要选择的,如果没有选择的话,需要自己设置,我一般比较懒,卸载了python重新下载的,让下载器自动设置。然后是python版本问题有人疑问这是64位还是32位,看那个[64bit]是64位,至于后面的on32是在windows上使用的意思,在Linux上…

    2022年5月24日
    202
  • 迅雷修改tracker服务器,qBittorrent 添加自定义 Tracker 的方法[通俗易懂]

    迅雷修改tracker服务器,qBittorrent 添加自定义 Tracker 的方法[通俗易懂]之前一直用uTorrent,前几天试了下qBittorrent之后,发现qBittorrent更容易添加自定义Tracker地址。uTorrent还需要每次添加或者修改Tracker服务器地址,而qBittorrent可以设置自动添加Tracker地址,而不需要每次下载都添加了。方法很简单:1.打开qBittorrent之后,点击工具→选项:2.在打开的界面中点击左…

    2022年9月27日
    2
  • 华为三层交换机配置不同网段互通[通俗易懂]

    华为三层交换机配置不同网段互通[通俗易懂]CSDN上看到这样一个问题,回答后所以顺便整理一下,一般情况下,三层交换机不直接连终端端,太浪费了,可以连一个交换机然后再连终端

    2025年10月27日
    3

发表回复

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

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