当前位置:网站首页>AutoJs学习-AES加解密
AutoJs学习-AES加解密
2022-08-02 09:02:00 【芝麻粒儿】
关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
本文约3千字,新手阅读需要8分钟,复习需要2分钟 【收藏随时查阅不再迷路】
实践过程
importClass("java.security.SecureRandom");
importClass("javax.crypto.spec.DESKeySpec");
importClass("javax.crypto.SecretKeyFactory");
importClass("javax.crypto.Cipher");
importClass("java.security.NoSuchAlgorithmException");
importClass("javax.crypto.KeyGenerator");
importClass("javax.crypto.SecretKey");
importClass("javax.crypto.spec.SecretKeySpec");
importClass("javax.crypto.KeyGenerator");
importClass("javax.crypto.spec.IvParameterSpec");
var config={
VIPARA:"0102030405060708", // IvParameterSpec
bm:"GBK", // 编码
dataPassword:'1111222233334444',
cleartext:'hello world'
}
for(var k in config){
var v=config[k]
config[k]=new java.lang.String(v)
}
var dataPassword = config.dataPassword
var cleartext = config.cleartext
var encrypted = encrypt(dataPassword, cleartext)
log('加密结果=')
log(encrypted)
var decrypted = decrypt(dataPassword, encrypted)
log('解密结果=')
log(decrypted)
function encrypt(dataPassword, cleartext) {
var VIPARA=config.VIPARA
var bm=config.bm
var zeroIv = new IvParameterSpec(config.VIPARA.getBytes());
var key = new SecretKeySpec(dataPassword.getBytes(), "AES");
var cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);
var encryptedData = cipher.doFinal(cleartext.getBytes(bm)); // byte[]
var result= base64Encode(encryptedData);
result=new java.lang.String(result)
return result
}
/** * * @param {String} dataPassword * @param {String} encrypted * @return {String} */
function decrypt(dataPassword, encrypted) {
var VIPARA=config.VIPARA
var bm=config.bm
var byteMi = base64Decode(encrypted); // byte[]
var zeroIv = new IvParameterSpec(config.VIPARA.getBytes());
var key = new SecretKeySpec(dataPassword.getBytes(), "AES");
var cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, key, zeroIv);
var decryptedData = cipher.doFinal(byteMi); //byte[]
return new java.lang.String(decryptedData, bm);
}
function base64Encode(r) {
var r = android.util.Base64.encodeToString(r, 0);
return r
}
function base64Decode(r) {
var r = android.util.Base64.decode(r, 0)
return r
}
其他
作者:小空和小芝中的小空
转载说明-务必注明来源:https://zhima.blog.csdn.net/
这位道友请留步️,我观你气度不凡,谈吐间隐隐有王者霸气,日后定有一番大作为!!!旁边有点赞收藏今日传你,点了吧,未来你成功️,我分文不取,若不成功️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。
边栏推荐
- Jenkins--基础--6.2--Pipeline--语法--声明式
- postman下载安装汉化及使用
- MySQL安装与卸载详细教程
- 膜拜,Alibaba分布式系统开发与核心原理解析手册
- Overview of Edge Computing Open Source Projects
- 智能网络安全网卡|这是不是你要的安全感
- PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image
- 小程序云开发(十):渐变与动画
- 恋爱十不要
- 不用Swagger,那我用啥?
猜你喜欢
MySQL安装与卸载详细教程
Jenkins--基础--6.1--Pipeline--介绍
主流监控系统工具选型及落地场景参考
PyCharm使用教程(详细版 - 图文结合)
OneNote Tutorial, How to Create More Spaces in OneNote?
Pycharm (1) the basic use of tutorial
【打新必读】麦澜德估值分析,骨盆及产后康复电刺激产品
Jenkins--部署--3.1--代码提交自动触发jenkins--方式1
PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image
腾讯T8架构师,教你学中小研发团队架构实践PDF,高级架构师捷径
随机推荐
【Flink 问题】Flink 如何提交轻量jar包 依赖该如何存放 会遇到哪些问题
查看变量的数据格式
day_05_pickel 和 json
pnpm:简介
[Must read] Mylander valuation analysis, electrical stimulation products for pelvic and postpartum rehabilitation
动态规划每日一练(3)
TiFlash 存储层概览
UVM之sequence机制
HCIA动态主机配置协议实验(dhcp)
【微信小程序】本地服务页面案例实现
Redisson实现分布式锁
练习40,小蓝的旅行【最短路】
软件exe图标变记事本或浏览器、360压缩打不开的几种应急解决方法
shell脚本
The packet capture tool Charles modifies the Response step
next permutation
etcd implements large-scale service governance application combat
智能网络安全网卡|这是不是你要的安全感
C语言_指针
力扣:第 304 场周赛