使用十六进制十进制值进行Android加密和解密?

使用十六进制十进制值进行Android加密和解密?,android,encryption,aes,Android,Encryption,Aes,我需要在安卓系统中进行加密和解密 现在我使用“AES”算法加密,我得到了一些加密值,比如�*��1FO��' 但我需要这样的输出'38533F4B3F3852203F443F3F283F3F' 有人知道吗 我的加密代码 IvParameterSpec _IVParamSpec = new IvParameterSpec(IV); SecretKeySpec sks = new SecretKeySpec(KEY, "AES"); ciphe

我需要在安卓系统中进行加密和解密


现在我使用“AES”算法加密,我得到了一些加密值,比如�*��1FO��' 但我需要这样的输出'38533F4B3F3852203F443F3F283F3F'

有人知道吗

我的加密代码

            IvParameterSpec _IVParamSpec = new IvParameterSpec(IV);
        SecretKeySpec sks = new SecretKeySpec(KEY, "AES");
        cipher.init(Cipher.ENCRYPT_MODE, sks,_IVParamSpec);
        /*byte[] bt = new byte[256] ;
               bt = hexStringToByteArray(strToDecrypt);*/
        //final String decryptedString1 = new String(cipher.doFinal(bt));
                //final String decryptedString = new String(cipher.doFinal(strToDecrypt.getBytes("UTF-16LE")));
                final String decryptedString2 = new String(cipher.doFinal(Base64.decode(strToDecrypt, Base64.NO_WRAP)));
                String StrHex = toHex(decryptedString);
        final String decryptedString1 = new String(cipher.doFinal(strToDecrypt.getBytes()));
使用此软件包:


它支持转换十六进制字符串,还提供除AES(AFAIK)之外的各种加密功能。

因此,您要问的是如何在Java中将字节数组转换为十六进制字符串?38533F4B3F3852203F443F3F283F3F是十六进制字符串,未加密。您的原始数据是什么?@Amir例如,如果输入“userid”意味着我需要像“40d44d0”这样的加密输出AES@saravanan“40d44d0”不是“userid”的十六进制编码,并且太短,不能作为加密“userid”的十六进制编码。你在说什么?请详细描述您想要实现的目标。如果您想将字节数组转换为可以作为文本处理的内容,那么Base64比hex(=Base16)占用的空间更小。好的,我会尝试。感谢您的重播请尝试格式化您的句子,这不是YouTube,我们尝试避免使用YouTube类型的语言,因为它会使网站变得更简单。