idea java 代码混淆加密_IDEA加密算法
在IDEA 加密和解密过程中,明文和密文是分成 64 比特的块来处理的,但密钥宽度是 128 比特,加解密是依赖于下面的三种代数群的运算,每个代数群都是 16 比特数的运算,其中包括:
两个16 比特子块的按位异或 (XOR) 运算.
模加运算,两个整数相加后,对 216 取模,即忽略*高位进位的加法.
模乘运算,两个数求积后,对费马数 p=216 +1取模.
由于上面三种运算的任意两个运算间不满足分配律和结合律,使输入之间实现了较复杂的组合运算,图 3.1 给出了IDEA 算法的加密过程,在 8 轮变换之后,紧接着是一个输出变换.它们级联起来完成一次完整的加密,算法的解密过程和加密过程相同,只是参与运算的子密钥块小同,这个特性也被称为加密和解密的相似性,从图 3.1 可看出 IDEA算法包括 34 次16 位模乘和模加, 48 次异或运算。
如图3.1 所示, 64位的明文被分为 4 个16 比特的子块,四个明文的子模块被 52 个16 比特的密钥转换为 4 个16 比特的密文子块,每轮变换使用 6 个密钥子块,第 r( r=1,…,8)轮使用的密钥为 Z1 (R), … ,Z 6(R) ,若将输出置换作为*后一轮,它用四个密钥,标记为 Z1 (9), … ,Z 4(9) 用于加密和解密的 52个子密钥是由用户提供的 128 位密钥产生的,加密的各轮密钥是由原始密钥向左依次作 25 比特的循环移位后抽取得到的,解密密钥是由对应的加密密钥经模逆运算后产生的,假设 Ki(r) 表示解时第 r轮的第i个密钥,解密密钥和加密密钥具体关系如下:
由于解密密钥产生的复杂性, IDEA 的加密速度快于解密。
在每一轮的核心中,包含有两个模乘模块和两个模加模块,这种结构被称为乘加(MA) 结构,即图3.1 中虚线标注的部分,它是 IDEA 实现中的关键非线性构件,研究表明8轮迭代后能达到雪崩性的扩散和混淆,因而它能抵抗差分分析。
超时代手机视频加密转载 www.360drm.com
idea java 代码混淆加密_IDEA加密算法相关推荐
- idea java 代码混淆加密_使用 IntelliJ IDEA 开发一般 Java 应用程序时配置 Allatori 进行代码混淆...
使用 IntelliJ IDEA 开发一般 Java 应用程序时通过 Allatori 进行代码混淆非常容易配置,下面总结一下本人经验,介绍一下配置方法. 首先在 IDEA 的 Module 所在硬盘 ...
- java代码混淆加密_Java代码混淆和加密--Jocky(转)
1.1 什么是Jocky? 我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在运行期动态链接. 这样,编译后的类文件中将包含有符号 ...
- Java代码混淆和加密--Jocky
原文地址为: Java代码混淆和加密--Jocky 1.1 什么是Jocky? 我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在 ...
- Java培训分享5个常用Java代码混淆器
对于Java程序员来说,如果辛辛苦苦写的代码被人摽窃走,将是一件非常恼火的事情.如何保护自己的代码呢,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD,尽可能给反编译人员制 ...
- 前端JavaScript代码混淆加密原理介绍
因为JavaScript大都是运行在浏览器端,这就导致任何人都可以直接对网站的代码进行查看,如果代码没有进行任何处理就会导致直接暴露源码,他人便可轻而易举的复制你的劳动成果,但是由于没有纯粹的加密方案 ...
- java代码混淆器proguard使用大法3种
ProGuard注意事项 1.反射调用类或者方法,可能失败 2.对外接口的类和方法,不要混淆 3.嵌套类 4.native方法 5.枚举类 https://www.guardsquare.com/en ...
- android加密墙,Android代码混淆加密配置(Proguard文件解析)
Android代码混淆加密配置(Proguard文件解析) Android代码混淆加密配置(Proguard文件解析) 为了防止自己的APP被轻易反编译,我们需要对APK进行混淆,或者特殊加密处理.可 ...
- 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】
Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...
- Java代码混淆工具ProGuard
目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...
最新文章
- 百度造车和RoboTaxi利好自动驾驶?不,利好茅台
- mysql建表的auto_increment_koa2+koa+mysql快速搭建nodejs服务器
- python连接kafka-python连接kafka生产者,消费者脚本
- nosql的数据服务_使用NoSQL实现实体服务–第1部分:概述
- C++(STL):06---数值的极值(numeric_limits类)
- layui框架使用总结
- JMeter数据库操作详解
- Linux系统里存在两个剪切板
- 极客大学架构师训练营 系统架构 消息队列 负载均衡 数据库备份 第10课 听课总结
- STM32CAN波特率简易计算
- springboot调用so文件
- 生活小常识,哪些药物不能混合用?
- Oblog 2.52导出日志最新漏洞
- Unity中Transform和rotation相关小知识点
- 笔记本安装固态硬盘ssd教程
- 2020年8月4日王者服务器维修,2020年8月4日小鸡正确的答案
- Maxtang大唐英特尔12代J6412无风扇双网口迷你主机真实评测
- MarkdownPad的livepreview预览无效,显示this view has crashed
- 人类实体瘤临床细胞状态和生态系统图谱(EcoTpyer)
- C语言编程编制职工档案管理程序,C语言 编写一个职工档案程序.doc
热门文章
- 计算机专业有必要进实验室吗,本科生有必要进实验室吗? 看看学姐的经验
- 高通手机基带镜像解压¥混合基带制作方法。(解决手机距离感应器失效)
- 【MySQL索引】底层实现原理 MyISAM非聚簇索引 vs. InnoDB聚簇索引
- java如何开发视频软件_如何快速实现视频截图?很多人都在使用的一款软件
- 分布式微能源及储能系统
- 无ios开发者账号如何打包自己的ios 版本app(需要有苹果手机或者mac电脑)
- 云队友丨阿里彭蕾:我拿什么辅佐马云,提高阿里人的战斗力?
- 多旋翼飞行器设计与控制(七)—— 传感器标定和测量模型
- matlab参数化翼型,轴流风机机翼型叶片参数化建模方法
- 江苏省高二计算机考试知识点总结,江苏省计算机一考试知识点整理.doc