当前位置:网站首页>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/
这位道友请留步️,我观你气度不凡,谈吐间隐隐有王者霸气,日后定有一番大作为!!!旁边有点赞收藏今日传你,点了吧,未来你成功️,我分文不取,若不成功️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。
边栏推荐
猜你喜欢
随机推荐
单机部署flink,创建oracle19c rac的连接表时报错 ORA-12505 ,怎么回事?
In a recent build figure SLAM, and locate the progress
What is the function of page directive contentPage/pageEncoding in JSP page?
二分类和多分类
【微信小程序2】事件绑定
js函数防抖和函数节流及其使用场景
天地图给多边形加标注
nacos项目搭建
动态规划每日一练(3)
oracle的sql改成mysql版本
智能网络安全网卡|这是不是你要的安全感
查看变量的数据格式
Analysis of software testing technology How far is Turing test from us
PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image
Jenkins--基础--07--Blue Ocean
spark:页面单跳转换率统计(案例)
C语言基础_结构体
HCIA静态路由综合练习
day_05 time 模块
【Redis】Jedis








