开发者社区> 小凡晓宇> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

autojs-AES加密CBC模式的IV不存在的

简介: 牙叔教程 简单易懂
+关注继续查看

牙叔教程 简单易懂


打印$crypto.encrypt

log($crypto.encrypt.toString());


function (data, key, algorithm, options) {
    return $crypto._cipher(data, Cipher.ENCRYPT_MODE, key, algorithm, options);
}


打印$crypto._cipher

log($crypto._cipher.toString());


function (data, mode, key, algorithm, options) {
    options = options || {};
    let cipher = Cipher.getInstance(algorithm);
    cipher.init(mode, key.toKeySpec(algorithm));
    let os;
    let isFile = options.output == "file" && options.dest;
    if (isFile) {
        os = new java.io.FileOutputStream(options.dest);
    } else {
        os = new ByteArrayOutputStream();
    }
    let cos = new CipherOutputStream(os, cipher);
    $crypto._input(data, options, (bytes, start, length) => {
        cos.write(bytes, start, length);
    }
    );
    cos.close();
    os.close();
    if (!isFile) {
        let result = os.toByteArray();
        return $crypto._output(result, options, "bytes");
    }
}


第4行是

cipher.init(mode, key.toKeySpec(algorithm));


有2个参数


java中是

var cipher = javax.crypto.Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, iv);


有3个参数


第三个参数就是 IV


打印cipher.init

function init() {/*
void init(int,java.security.Key,java.security.AlgorithmParameters)
void init(int,java.security.Key,java.security.SecureRandom)
void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec)
void init(int,java.security.cert.Certificate,java.security.SecureRandom)
void init(int,java.security.Key)
void init(int,java.security.cert.Certificate)
void init(int,java.security.Key,java.security.AlgorithmParameters,java.security.SecureRandom)
void init(int,java.security.Key,java.security.spec.AlgorithmParameterSpec,java.security.SecureRandom)
*/}


init有多个重载 (Overload)方法,

autojs实现了两个参数的方法, 其他方法未实现

测试环境

手机: Mi 11 Pro
Android版本: 12
Autojs版本: 8.8.20


名人名言

思路是最重要的, 其他的百度, bing, stackoverflow, github, 安卓文档, autojs文档, 最后才是群里问问 --- 牙叔教程

声明

部分内容来自网络 本教程仅用于学习, 禁止用于其他用途

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
java88-Charactor包装类
java88-Charactor包装类
9 0
autojs之百度-对象存储BOS-SDK的使用
使用场景 autojs 使用百度云 对象存储 BOS
39 0
Java连接Redis之redis的增删改查
一、新建一个maven工程,工程可以以jar的形式或war都行,然后导入正确的依赖 4.0.0 com.test redis 0.0.1-SNAPSHOT UTF-8 redis.
1312 0
Java并发指南9:AQS共享模式与并发工具类的实现
这位大侠,这是我的公众号:程序员江湖。 分享程序员面试与技术的那些事。 干货满满,关注就送。  一行一行源码分析清楚 AbstractQueuedSynchronizer (三) 转自:https://javadoop.com/post/AbstractQueuedSynchronizer-3 这篇文章是 AQS 系列的最后一篇,第一篇,我们通过 ReentrantLock 公平锁分析了 AQS 的核心,第二篇的重点是把 Condition 说明白,同时也说清楚了对于线程中断的使用。
983 0
告别无止境的增删改查--Java代码生成器
转自:http://www.cnblogs.com/zhuYears/archive/2012/02/29/2373491.html 告别无止境的增删改查--Java代码生成器     有感于马上要做个比较大的业务系统,想到那无止境的增删改查、粘贴复制,顿时脑后升起一阵凉风。
961 0
我的js单例模式
function Single(s){ if (Single.instance!=undefined) {     return Single.instance;   };   /**测试代码 start*/   var a=new Date().
696 0
+关注
332
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载