Java Android 3Des加密二进制输出
用3des解密。我可以正确地获得Base64输出,但我希望获得二进制输出。我该怎么办Java Android 3Des加密二进制输出,java,android,base64,3des,Java,Android,Base64,3des,用3des解密。我可以正确地获得Base64输出,但我希望获得二进制输出。我该怎么办 cipher.init(Cipher.ENCRYPT_MODE, key); byte[] encryptedText = cipher.doFinal(unencryptedString); byte[] sdd = Base64.encode(encryptedText, Base64.DEFAULT); 将字节数组转换为包含二进制值的字符串的简单方法 S
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encryptedText = cipher.doFinal(unencryptedString);
byte[] sdd = Base64.encode(encryptedText, Base64.DEFAULT);
将字节数组转换为包含二进制值的字符串的简单方法
String bytesToBinaryString(byte[] bytes){
StringBuilder binaryString = new StringBuilder();
/* Iterate each byte in the byte array */
for(byte b : bytes){
/* Initialize mask to 1000000 */
int mask = 0x80;
/* Iterate over current byte, bit by bit.*/
for(int i = 0; i < 8; i++){
/* Apply mask to current byte with AND,
* if result is 0 then current bit is 0. Otherwise 1.*/
binaryString.append((mask & b) == 0 ? "0" : "1");
/* bit-wise right shift the mask 1 position. */
mask >>>= 1;
}
}
/* Return the resulting 'binary' String.*/
return binaryString.toString();
}
String bytesToBinaryString(字节[]字节){
StringBuilder binaryString=新的StringBuilder();
/*迭代字节数组中的每个字节*/
for(字节b:字节){
/*将掩码初始化为1000000*/
int mask=0x80;
/*逐位迭代当前字节*/
对于(int i=0;i<8;i++){
/*使用和将掩码应用于当前字节,
*若结果为0,则当前位为0。否则为1*/
追加((掩码和b)==0?“0”:“1”);
/*按位右移掩码1位置*/
掩码>>>=1;
}
}
/*返回生成的“二进制”字符串*/
返回binaryString.toString();
}
明确您的输出要求。你想要一个二进制数的字符串表示吗?有趣的是,你能解释一下这个算法以及它为什么有用吗?