当前位置:网站首页>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/
这位道友请留步️,我观你气度不凡,谈吐间隐隐有王者霸气,日后定有一番大作为!!!旁边有点赞收藏今日传你,点了吧,未来你成功️,我分文不取,若不成功️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。
边栏推荐
- 了解下C# 不安全代码
- PyQt5安装配置(PyCharm) 亲测可用
- etcd implements large-scale service governance application combat
- JSP页面中page指令有哪些属性及方法可使用呢?
- Postman download localization of installation and use
- 【Flink 问题】Flink 如何提交轻量jar包 依赖该如何存放 会遇到哪些问题
- Jenkins--基础--5.4--系统配置--全局工具配置
- nacos项目搭建
- 【Redis】通用命令
- Rust from entry to master 03-helloworld
猜你喜欢
随机推荐
postman使用方法
C Language Basics_Union
向量组的线性相关性
shell脚本
Codeforces Round #811 (Div. 3)无DF
shell中计算命令详解(expr、(())、 $[]、let、bc )
XML简介
Worship, Alibaba distributed system development and core principle analysis manual
Hikari连接池源码解读
The packet capture tool Charles modifies the Response step
USACO美国信息学奥赛竞赛12月份开赛,中国学生备赛指南
天地图给多边形加标注
OneNote Tutorial, How to Create More Spaces in OneNote?
“蔚来杯“2022牛客暑期多校训练营4
恋爱十不要
练习40,小蓝的旅行【最短路】
Daily practice of dynamic programming (3)
Qt读取文件中内容(通过判断GBK UTF-8格式进行读取显示)
JS中的数组方法
day_05模块









