首页 > 其他分享 >Android 一例Base64错误问题

Android 一例Base64错误问题

时间:2023-10-19 18:35:11浏览次数:41  
标签:String 一例 Base64 Cipher new Android getBytes cipher

在Android 11下正常,8.1下不正常
修改import
import org.apache.commons.codec.binary.Base64;

import android.util.Base64;

public static String encrypt(String data) {
        try {
            SecretKey secretKey = new SecretKeySpec(SECRET_KEY.getBytes(), ENCRYPTION_ALGORITHM);
            Cipher cipher = Cipher.getInstance(TRANSFORMATION);
            IvParameterSpec ivParameterSpec = new IvParameterSpec(INIT_VECTOR.getBytes());
            cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivParameterSpec);
            byte[] encryptedData = cipher.doFinal(data.getBytes("UTF-8"));
            return Base64.encodeToString(encryptedData, Base64.DEFAULT);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static String decrypt(String encryptedData) {
        try {
            SecretKey secretKey = new SecretKeySpec(SECRET_KEY.getBytes(), ENCRYPTION_ALGORITHM);
            Cipher cipher = Cipher.getInstance(TRANSFORMATION);
            IvParameterSpec ivParameterSpec = new IvParameterSpec(INIT_VECTOR.getBytes());
            cipher.init(Cipher.DECRYPT_MODE, secretKey, ivParameterSpec);
            byte[] decryptedData = cipher.doFinal(Base64.decode(encryptedData, Base64.DEFAULT));
            return new String(decryptedData, "UTF-8");
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

标签:String,一例,Base64,Cipher,new,Android,getBytes,cipher
From: https://www.cnblogs.com/zhaogaojian/p/17775356.html

相关文章

  • 一张图去除焦虑,我还能在Android这行继续“裸泳”
    每当新技术潮流兴起时,总会有人声称它们将使"程序员"失业,例如云服务、低代码等等...云原生的出现甚至引发了一种观点,认为很多程序员工作将会集体下岗,生成式技术正在颠覆多个行业,有专家预言在三年内编程将终结...今年,随着技术的不断突破和创新,它们具备更加完善的能力,可以应用于多个工......
  • Android(S)系统属性服务详解
    1.简介 Android系统中,为统一管理系统的属性,设计了一个统一的属性系统,包括两部分:文件保存的持久属性和每次开机导入的cache属性,前者主要保存在.prop文件中,需要注意的是android属性的名称是有一定的格式要求。每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Andro......
  • 如何在Android中获取图片路径
    Android中获取图片路径的方法在Android开发中,获取图片路径是一个常见的需求。下面介绍几种途径来实现获取图片路径的方法。途径一:从相册中获取图片路径要从相册中获取图片的路径,我们需要调用相应的系统接口实现。具体步骤如下:在Manifest文件中添加获取相册的权限:<uses-per......
  • 最新Unity 如何打包发布到Android
    Unity打包Android现在UnityHub已经做的非常好了,可以直接下载对应Unity版本所对应得JDK,NDK,SDK,直接可以通过unityhub下载避免了,各种版本不同导致的编译问题,大大的降低了初学者的打包发布的难度,本文详细讲解UnityAndroid打包以及在打包中间需要理解的点, 如下:(1) Unityhu......
  • Android转行的第一顺位是智能座舱?
    前言智能座舱是汽车中负责提供驾乘人员舒适性和安全性的部分,其包括了许多功能,如操控系统、娱乐系统、空调系统、通信系统、座椅系统、交互系统、感知系统等。在这些功能的实现上,AndroidFramework系统发挥着重要的作用。Android系统是一种基于Linux的开放源代码操作系统,广泛应用于......
  • 谷歌使用Jetpack Compose逐步重写Android 14,不会你还不知道吧?
    前言早在2019年,谷歌就推出了JetpackCompose,这是一种使用Kotlin开发原生安卓应用的编写方式,抛弃了常规基于XML的视图来设计应用UI,而是让开发者以声明方式创建设计。从那时起,谷歌就大力鼓励开发者在安卓应用中使用JetpackCompose,还使用JetpackCompose重构了其PlaySto......
  • app直播源码,android AES加密解密实现
     app直播源码,androidAES加密解密实现importandroid.util.Base64;importandroid.util.Log; importjava.security.Key; importjavax.crypto.Cipher;importjavax.crypto.SecretKeyFactory;importjavax.crypto.spec.DESedeKeySpec;importjavax.crypto.spec.IvParameterSpe......
  • java图片转base64(不换行)
    publicstaticStringImageToBase64(StringimgPath){InputStreamin=null;byte[]data=null;//读取图片字节数组try{in=newFileInputStream(imgPath);data=newbyte[in.available()];in.read(data);in.close();}catc......
  • 【Android面试】2023最新面试专题七:Java并发编程(二)
    6 ReentrantLock的实现原理这道题想考察什么?是否了解并发相关的理论知识是否对于锁机制有个全面的理论认知是否对于AQS原理有自己的理解考察的知识点锁的分类(公平锁、重入锁、重力度锁等等)ReentrantLock实现方式与Synchronized实现方式的异同点考生应该如何回答Java中的大部分同步......
  • Android 博学谷项目
    开发工具:JDK8、SQLite、AndroidStudio、夜神模拟器、apache-tomact项目描述:此项目主要分为三大模块:课程模块、习题模块、“我”的模块,课程模块包括课程列表和课程详情,习题包括习题列表和习题详情,“我”的模块包含用户注册、用户登录、找回密码、个人资料、设置等六个功能,其中个......