java - 如何用java编写代码将明文转换为十六进制?

标签 java

String key="this is stack Overflow i am implementing aes algorithm"; //plaintext
String binary=stringToBinary(key); //convertion from plain text to binarydigits
String res[]=split_at(binary,8); //split binary digits into 8 bits
int c=0,r=0;

for(int i=0;i<res.length;i++) //convert each 8 bits into hexadecimal
{
    userKey[r][c]=binaryToHex(res[i]);
    c++;
    if(c==4)
    {
        c=0;
        r++;
        if(r==4)
        break;
    }
}
public static String[][] split_at(String str,int no)//method
{
    int i=0;
    int x=0;
    int l=str.length();
    String res[]=new String[(l/no)+1];
    int f=0;
    while(no<1){
        res[f]=str.substring(i,no);
        i=i+x;
        no=no+x;
        f++;
    }
    if(i<1){
        res[f]=str.substring(i,1);
    }
    return res;
}

我已经尝试过这个。但我不知道它是否正确。告诉我这个过程是否正确?如果不正确,请建议我如何将明文转换为十六进制。

最佳答案

将字符串的每个字符转换为int:

int character = (int) str.charAt(i);

然后获取 int 的十六进制表示形式:

String hexString = Integer.toHexString(character);

关于java - 如何用java编写代码将明文转换为十六进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37998155/

相关文章:

java - 插件 Android 支持异常

java - Mule 热部署耗尽 PermGen

Java 9 JavaFX 预加载器

java - 在不实例化子类的情况下在父类(super class)和子类之间进行等效测试

java - JpaRepository是否有patch方法来更新特定对象

java - 将新行读取为两个字符

java - 如何模拟依赖于更新可变对象的方法

java - 在 JRuby 生成的 .class/.java 文件上实现 Java 接口(interface)

java - 如何修复我用compareTo()比较字符串的代码

java - 使用 closeTo 匹配器将 float 与 Spock(Groovy 测试框架)进行比较时出错