当前位置: 首页 > news >正文

产品包装设计公司网站深圳设计公司办公室装修设计

产品包装设计公司网站,深圳设计公司办公室装修设计,如何选择模板网站建设,seo优化设计一、前言 AES#xff08;高级加密标准#xff09;、DES#xff08;数据加密标准#xff09;、MD5#xff08;消息摘要算法5#xff09;和SHA-1#xff08;安全哈希算法1#xff09;都是常见的加密算法#xff0c;用于数据加密和哈希计算。 二、加密算法实现 1、创建…一、前言 AES高级加密标准、DES数据加密标准、MD5消息摘要算法5和SHA-1安全哈希算法1都是常见的加密算法用于数据加密和哈希计算。 二、加密算法实现 1、创建加密函数 java代码实现方式 package com.yuanrenxue.course6;import android.util.Base64;import java.math.BigInteger; import java.nio.charset.StandardCharsets; import java.security.Key; import java.security.MessageDigest;import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec;public class CryptoUtils implements ICryptoUtils {Overridepublic String aesEncrypt(String key, String iv, String content) throws Exception {// 密钥和IV的处理SecretKeySpec keySpec new SecretKeySpec(key.getBytes(), AES);// Cipher对象的初始化获取Cipher对象指定了AES算法、CBC模式和PKCS5填充。Cipher cipher Cipher.getInstance(AES/CBC/PKCS5Padding);// iv 偏移量IvParameterSpec ivSpec new IvParameterSpec(iv.getBytes());// 初始化cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);// 加密byte[] bytes cipher.doFinal(content.getBytes());return Base64.encodeToString(bytes, Base64.DEFAULT);}Overridepublic String aesDecrypt(String key, String iv, String content) throws Exception {// 密钥和IV的处理SecretKeySpec keySpec new SecretKeySpec(key.getBytes(), AES);// Cipher对象的初始化获取Cipher对象指定了AES算法、CBC模式和PKCS5填充。Cipher cipher Cipher.getInstance(AES/CBC/PKCS5Padding);// iv 偏移量IvParameterSpec ivSpec new IvParameterSpec(iv.getBytes());// 初始化cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);// 解密byte[] bytes cipher.doFinal(Base64.decode(content, Base64.DEFAULT));return new String(bytes);}Overridepublic String desEncrypt(String key, String content) throws Exception {// 密钥处理SecretKeySpec keySpec new SecretKeySpec(key.getBytes(), DES);// Cipher对象的初始化获取Cipher对象指定了AES算法、CBC模式和PKCS5填充。Cipher cipher Cipher.getInstance(DES/ECB/PKCS5Padding);// 初始化cipher.init(Cipher.ENCRYPT_MODE, keySpec);// 加密byte[] bytes cipher.doFinal(content.getBytes());return Base64.encodeToString(bytes, Base64.DEFAULT);}Overridepublic String desDecrypt(String key, String content) throws Exception {// 密钥处理SecretKeySpec keySpec new SecretKeySpec(key.getBytes(), DES);// Cipher对象的初始化获取Cipher对象指定了AES算法、CBC模式和PKCS5填充。Cipher cipher Cipher.getInstance(DES/ECB/PKCS5Padding);// 初始化cipher.init(Cipher.DECRYPT_MODE, keySpec);// 解密byte[] bytes cipher.doFinal(Base64.decode(content, Base64.DEFAULT));return new String(bytes);}Overridepublic String getMD5(String content) throws Exception {// 得到摘要实例MessageDigest md MessageDigest.getInstance(MD5);// 摘要运算byte[] digest md.digest(content.getBytes());// 返回16进制字符串return new BigInteger(1, digest).toString(16);}Overridepublic String getSHA1(String content) throws Exception {// 得到摘要实例MessageDigest md MessageDigest.getInstance(SHA1);// 摘要运算byte[] digest md.digest(content.getBytes());// 返回16进制字符串return new BigInteger(1, digest).toString(16);// 第二种写法// md.update(content.getBytes());// md.update(content2.getBytes());// md.update(content3.getBytes());// return new BigInteger(1, md.digest()).toString(16);} } 2、hook 加密函数 java代码实现方式 package com.example.plugintest;import android.util.Log;import com.virjar.ratel.api.rposed.IRposedHookLoadPackage; import com.virjar.ratel.api.rposed.RC_MethodHook; import com.virjar.ratel.api.rposed.RposedHelpers; import com.virjar.ratel.api.rposed.callbacks.RC_LoadPackage;import java.math.BigInteger; import java.security.MessageDigest;import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec;public class HookCryptoEntry implements IRposedHookLoadPackage {private static final String TAG plugintest--;Overridepublic void handleLoadPackage(RC_LoadPackage.LoadPackageParam lpparam) throws Throwable {System.out.println(TAG 包名是什么 lpparam.packageName);if (lpparam.packageName.equals(com.yuanrenxue.course6)) {System.out.println(TAG 确认hook的app是 lpparam.packageName);// 想hook这个new SecretKeySpec(key.getBytes(),AES);这里用的是findAndHookConstructor因为new ... 就是一个// 实例化的过程所以需要hook的是构造方法而不是普通方法RposedHelpers.findAndHookConstructor(SecretKeySpec.class, byte[].class, String.class, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);Log.d(TAG, String.format(SecretKeySpec(%s,%s)), new String((byte[]) param.args[0]), param.args[1]));}});// hook iv:new IvParameterSpec(iv.getBytes());RposedHelpers.findAndHookConstructor(IvParameterSpec.class, byte[].class, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);Log.d(TAG, String.format(IvParameterSpec(%s), new String((byte[]) param.args[0])));}});// hook 采用了什么加密算法:Cipher.getInstance(AES/CBC/PKCS5Padding)RposedHelpers.findAndHookMethod(Cipher.class, getInstance, String.class, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);Log.d(TAG, 发现使用如下加密算法: param.args[0]);}});// hook 加密解密过程cipher.doFinal(content.getBytes());RposedHelpers.findAndHookMethod(Cipher.class, doFinal, byte[].class, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);// 对于加密来说入参明文返回值密文// 对于解密来说入参密文返回值明文 可以通过这来判断在加密还是在解密// 加密的返回值因为是随机的字节所以打印出来很可能是鬼画符一样的东西7sZO像这种是正常的Log.d(TAG, String.format(入参为%s,返回值为%s, new String((byte[]) param.args[0]), new String((byte[]) param.getResult())));}});// hook采用了哪种哈希函数摘要算法 MessageDigest.getInstance(MD5);RposedHelpers.findAndHookMethod(MessageDigest.class, getInstance, String.class, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);Log.d(TAG, 发现使用如下哈希函数: param.args[0]);}});// 对于摘要内容的hook// 1. md.digest(content.getBytes());RposedHelpers.findAndHookMethod(MessageDigest.class, digest, byte[].class, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);Log.d(TAG, 消息内容为: new String((byte[]) param.args[0]));Log.d(TAG, 摘要结果为: new String((byte[]) param.getResult()));Log.d(TAG, 摘要结果为: new BigInteger(1, (byte[]) param.getResult()).toString(16));}});// 2. md.update(content.getBytes());RposedHelpers.findAndHookMethod(MessageDigest.class, update, byte[].class, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);Log.d(TAG, 2.消息内容为: new String((byte[]) param.args[0]));}});RposedHelpers.findAndHookMethod(MessageDigest.class, digest, new RC_MethodHook() {Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);Log.d(TAG, 2.摘要结果为: new BigInteger(1, (byte[]) param.getResult()).toString(16));}});}} }三、效果
http://www.pierceye.com/news/933688/

相关文章:

  • iis怎么建设网站内容杭州做搜索引擎网站的公司
  • 兰州网站开发价格建设和住房保障部 网站
  • 机械设备网站建设效果好的徐州网站开发
  • 商丘网站建设专业现状桓台县网站建设
  • 一级a做爰片免费网站孕交视频教程wordpress用的什么前端
  • 中文设计网站wordpress退出登录
  • 贵阳网站建设多少钱?帝国cms资源网模板
  • 利津网站定制wordpress文章内容下载手机
  • 西宁网站搭建百度网站制作联系方式
  • 中铁建设集团门户网站登陆翻页h5制作软件
  • 在线教育网站建设策划中国哪里在大建设
  • 宁波网站制作首荐荣盛网络好网站后台发布了但看不见
  • 用asp做网站出现空白30天网站建设全程实录 pdf
  • 吉林3厅官齐聚任免大会宁波网站建设广州活动策划公司排名
  • 个人阿里云账号可以做网站备案ip网址域名查询网
  • 厦门的企业网站企业形象网站建设意义
  • 网站源码网网站建设 制作教程
  • 怎么样销售关于网站建设网站服务器过期了怎么办
  • 常州建网站需要多少钱直播app开发费用
  • hpsocket 网站开发英文网站cms
  • 外贸自建站有哪些网站开发有哪几类
  • 青岛网站建设推广短视频运营是做什么的
  • 华为官方网站进入wordpress单页增加分页
  • 互动营销型网站建设大型网站建设开发设计公司
  • 锦州建设局网站商城网站建设方案电子版
  • 网站上删除信息如何做飞虎队网站建设
  • 中国有多少个网站网站做视频一个月有多少钱收入
  • 网站文字大小普洱市建设局网站
  • 兰州网站建设小程序凡客网站目录优化
  • 宿州科技网站建设一站式网站管家