草庐IT

Android Studio 进行NDK开发,实现JNI,以及编写C++与Java交互(Java调用本地函数)并编译出本地so动态库

1.首先认识一下NDK。(1)什么是NDK?NDK全称是NativeDevelopmentKit,NDK提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java应用一起打包成apk。NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。(2)为什么使用NDK?1)代码的保护:由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。2)可以方便地使用现存的开源库:大部分现存的开源库都是用C/

android jni层 opencv读写视频,基于VideoCapture和VideoWriter

开始用正常c++的opencv代码,包括python代码,也都是直接用VideoCapture,在open后面加videofile就可以了 //readvideocv::VideoCapturecapture;capture.open("/storage/emulated/0/DCIM/test.mp4");但是在androidjni层无论读写视频,capture.open那里都会报错E/cv::error():OpenCV(4.6.0)Error:Requestedobjectwasnotfound(couldnotopendirectory:/data/app/~~sbu7r1TB_QJQ

Android JNI打印logcat日志

在JNI中打印日志可以使用__android_log_print函数来实现。该函数是AndroidNDK提供的一个用于在本地代码中输出日志消息到logcat的方法。要在JNI中打印日志,请按照以下步骤进行操作:在你的JNIC/C++代码中包含头文件:#include使用__android_log_print函数来打印日志。它的原型定义如下:__android_log_print(intpriority,constchar*tag,constchar*format,...)priority:日志的优先级,可以是ANDROID_LOG_VERBOSE、ANDROID_LOG_DEBUG、ANDRO

C#常用的加密算法之一 MD5

C#常用的加密算法之一MD5参考文章MD5加密概述,原理及实现C#常用的加密算法:MD5、Base64、SHA1、SHA256、HmacSHA256、DES、AES、RSAMD5概述MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要(32位的数字字母混合码)。MD5特点不可逆,相同数据的MD5值肯定一样,不同数据的MD5值不一样一个MD5理论上的确是可能对应无数多个原文的,因为MD5是有限多个的而原文可以是无数多个。比如主流使用的MD5将任意长度的“字节串映射为一个128bit的大整数。也就是一共有2128种可能,大概是3.4*1038,

大文件 MD5 SHA 校验时间优化之路

最近研发apk校验服务,很多游戏安装包两三个G,如果整个拿去校验,耗时基本二十多秒,这还仅仅是校验的时间,如果加上下载的时间,等待时间太长了网上很多方案尝试了一下,不太行1、fastmd5一个第三方库,csdn有人用过说可以提升40%的速度,然后我去试了一下,本来9秒可以完成的校验,变成了2分多钟,我真是口吐莲花2、把MD5替换成SHA算法提升不明显,哪怕从30秒缩短到20几秒,依然接受不了所以只能寻求其它方案了分片校验法很多上传下载大文件,会采用分片的方法去做,这样就可以开启多个任务对同一个文件进行操作,速度提升好几倍如法炮制,先写个demo尝试一下,看看是否可行先把文件进行分片,找个几百M

Android studio配置OpenCV的JNI接口,实现C++代码编程

目录一、下载OpenCV-android-sdk二、新建项目三、导入OpenCV包 四、配置OpenCV的JNI接口,拷贝OpenCV所需的头文件和库文件五、修改Cmake文件 六、配置app的build.gradle文件 七、测试一、下载OpenCV-android-sdkOpenCV官网地址:https://opencv.org/ 点击Library-->Releases,下载Android版本,解压得到 OpenCV-android-sdk文件夹。​​​​​​二、新建项目打开Androidstudio,File-->New-->NewProject,选择最后一项NativeC++ 进入配

微软 Visual Studio 现已内置 Markdown 编辑器,可直接修改预览 .md 文件

VisualStudioCodeV1.66.0中文版大小:75.30MB类别:文字处理本地下载         Markdown是一种轻量级标记语言,当开发者想要格式化代码但又不想牺牲易读性时,Markdown是一个很好的解决方案,比如GitHub就使用Markdown来展示说明文档,也就是.md文件。  微软近日宣布,根据开发者的反馈,在VisualStudio中引入了Markdown编辑器。在最近的VisualStudio17.5预览版中,微软将Markdown编辑功能引入了IDE。现在,当开发者必须对项目中的Markdown文件进行更改时,无需离开VisualStudio即可执行此操作。

Java 实现 MD5 加密算法

1.MD5加密算法1.1MD5算法介绍MD5消息摘要算法,英文:MD5Message-DigestAlgorithm,一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。MD5是单向加密不可逆的,也就是常说的非对称加密,常用于用户密码的加密,这样即使密码泄露也不知道对应的明文信息,有效的保护系统和用户的隐私信息。MD5算法产生的是一个128位的散列值,128位是指的二进制中的128位,具体占16字节(每个字节可以表示为8位二进制数)。MD5加密最终会将128位数字转换成十六进制表示,每个字节(8位)转成2位十六进制数,最终得

openssl之EVP实现哈希(md5,sha256,sm3)

目录一、环境说明二、功能说明三、EVP接口说明四、使用实例4.1MD5算法实现实例。4.2sha256算法实现实例。4.3sm3算法实现实例。五、源码地址一、环境说明操作系统:linux(debian)开发工具:Qtcreator4.8.2Qt版本:5.11.3.45-1openssl版本:openssl-3.1.0二、功能说明1、使用openssl的EVP接口开发对数据进行hash。算法包括:md5、sha256、sm32、使用openssl的EVP接口开发对文件进行hash。算法包括:md5、sha256、sm3三、EVP接口说明使用EVP的接口有以下几个:EVP_MD_CTX_new,E

CTF-[Web] MD5解题思路

写在前面:最近练习了一些CTF中关于md5绕过的题目,总结了几种思路,本质没有太大变化,就是各种组合绕过,也是比较考察基础的,前段时间太摆烂了,好久没有更新了,革命尚未成功,同志仍需努力!!!关于md5 md5是一种信息摘要算法(目标是用于证明原文的完整性),其本质也是一种哈希函数,一种被广泛使用的密码散列函数,任意长度的数据算出的md5值的长度都是固定的,md5码具有高度的散列性,没有规律可循,哪怕辕信息只有一点变化,那么md5码也会发生巨大的变化,常用于验证文件的完整性,数据库存储密码,数字签名等。 md5具有不可逆性,但是通过MD5碰撞,还是有一定可能逆向出来的,(推荐一个在线md5破解