推荐肉丝r0ysue课程(包含安卓逆向与js逆向):https://img-blog.csdnimg.cn/7fa698312c304ab7bb0a03e2c866990f.png

JAVA加解密环境配置

1. 解除java jdk政策限制

相应配置文件下载地址

jdk6→http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

jdk7→http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

jdk8→http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html

将下载文件中的两个jar替换在 %JAVA_HOME%\jre\lib\security 下的jar

个人尝试时,该文件夹下并没有相应的jar文件,仅有一个policy文件夹(并且已经解除限制)java version “1.8.0_241”

检测是否已经解除限制

    public static void main(String[] args) {
        try {
            KeyGenerator kg =  KeyGenerator.getInstance("AES");
            kg.init(256);
            SecretKey secretKey=kg.generateKey();
            System.out.println(secretKey.getFormat());
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();

运行成功则已经解除限制

2.配置BouncyCastle

BouncyCastle下载地址

(方法一)全局静态配置

bcprov-ext*.jar文件复制到 %JAVA_HOME%\jre\lib\ext 目录下面
修改配置文件\jre\lib\security\java.security

security.provider.1=sun.security.provider.Sun
security.provider.2=sun.security.rsa.SunRsaSign
security.provider.3=sun.security.ec.SunEC
security.provider.4=com.sun.net.ssl.internal.ssl.Provider
security.provider.5=com.sun.crypto.provider.SunJCE
security.provider.6=sun.security.jgss.SunProvider
security.provider.7=com.sun.security.sasl.Provider
security.provider.8=org.jcp.xml.dsig.internal.dom.XMLDSigRI
security.provider.9=sun.security.smartcardio.SunPCSC
security.provider.10=sun.security.mscapi.SunMSCAPI
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider

(方法二)动态添加jar

导入不含ext的另一个jar

所使用的类中添加

    static {
        Security.addProvider(new BouncyCastleProvider());
    public static void main(String[] args) {
        Provider provider = Security.getProvider("BC");
        System.out.println(provider);
        for(Map.Entry<Object,Object> entry:provider.entrySet()){
            System.out.println(entry.getKey()+" --> "+entry.getValue());

运行类似下,则配置成功

BC version 1.69
Cipher.ARIARFC3211WRAP --> org.bouncycastle.jcajce.provider.symmetric.ARIA$RFC3211Wrap
Alg.Alias.Cipher.1.3.6.1.4.1.22554.1.1.2.1.22 --> PBEWITHSHAAND192BITAES-CBC-BC
Alg.Alias.AlgorithmParameters.SHA512withRSA/PSS --> PSS
Alg.Alias.Mac.HMAC/Skein-256-224 --> HMACSkein-256-224
Alg.Alias.MessageDigest.SHA256 --> SHA-256

配置CommonsCodec

Commons Codec下载地址

JAVA加解密环境配置1. 解除java jdk政策限制相应配置文件下载地址jdk6→http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.htmljdk7→http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.htmljdk8→http://www.oracle.com/technetwork/ //AES256密 private byte[] AESEncrypt(String content, byte[] key, byte[] iv){ byte[] byteContent = content.getBytes("utf-8"); // Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider()
安卓中,不管是内网还是外网,数据的传输首要考虑就是安全问题,尤其是用户信息,以及各种密码等敏感信息。 所以说,对数据的密是很有必要的,尤其是当下物联网蓬勃发展的今天,数据安全尤为重要。 因此本人总结了一下安卓中几种密方式的实现: ① MD5:一种不可逆的密算法,常用于只需密无需解密的数据上,比如用户密码,也常用来保证数据的完整性,因为数据被篡改后,其密后的MD5也会
关于使用算法找不到类org.bouncycastle.jce.provider.BouncyCastleProvider的问题,本人尝试了网上N多方法都不行后,自己尝试解决了问题,以分享出来。没有JAVA_HOME的需要配置环境,JDK环境变量的配置 1、网上搜索的方法基本都是这种,本人没有解决问题 找到JAVA_HOME路径 将bcprov-jdk14-145.jar放入JAVA_HOME...
JCE cannot authenticate the provider BC解决办法: 修改 JAVA_HOME\jre\lib\security\java.security 文件添如下内容 security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider 其中security.provider.11中的11是根据已
下载下来安装后报错 Performing Streamed Install adb: failed to install ap.apk: Failure [INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION: Failed to parse /data/app/vmdl1255401458.tmp/base.apk: Corrupt XML binary file] 同时使用apktool反编译也报错 java -. 三个类逻辑差不多相同,只是调用的native方法不同,关系如下 DefinitelyNotThisOne:definitelyNotThis sThisTheRealOne:perhapsThis ThisIsTheRealOne:o.
文章目录boot.img解包打包工具:一、解压谷歌原版镜像二、打开zip压缩包,复制出`boot.img`文件三、对`boot.img`进行解包五、编辑`prop.default`文件六、对boot.img重打包七、刷入新img boot.img解包打包工具: 一、解压谷歌原版镜像 二、打开zip压缩包,复制出boot.img文件 三、对boot.img进行解包 首先要编译BootImgTool cd BootImgTool/ ./build.sh ./bin/unpack-bootimg.sh .
安装 Bouncy Castle 是相对简单的过程,您只需要遵循以下步骤即可: 1. 访问 Bouncy Castle 官方网站:https://www.bouncycastle.org/ 2. 点击下载页面中的 “Downloads” 链接,然后选择您需要的版本,例如 “Bouncy Castle Provider 1.68” 。 3. 下载适合您操作系统的版本。 4. 解压下载的压缩包,您会发现其中包含了一个 JAR 文件。 5. 将该 JAR 文件添到您的 Java 项目中,以便您可以使用 Bouncy Castle 提供的安全功能。具体方法取决于您使用的构建工具,但通常包括以下步骤: a. 在您的项目中创建一个名为 “lib” 的目录(如果您没有这样做)。 b. 将下载的 JAR 文件复制到这个目录中。 c. 在您的项目设置中添对该 JAR 文件的引用。 6. 完成以上步骤后,您就可以使用 Bouncy Castle 提供的安全功能了。例如,在 Java 中使用 Bouncy Castle 密数据的示例代码如下: import org.bouncycastle.jce.provider.BouncyCastleProvider; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.Security; public class BouncyCastleExample { public static void main(String[] args) throws Exception { Security.addProvider(new BouncyCastleProvider()); byte[] key = "0123456789abcdef".getBytes(); byte[] iv = "fedcba9876543210".getBytes(); byte[] plaintext = "Hello, world!".getBytes(); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", "BC"); SecretKeySpec keySpec = new SecretKeySpec(key, "AES"); IvParameterSpec ivSpec = new IvParameterSpec(iv); cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); byte[] ciphertext = cipher.doFinal(plaintext); System.out.println(new String(ciphertext)); 希望这可以帮助您安装和使用 Bouncy Castle 库。