`
wangchengyong
  • 浏览: 24441 次
  • 性别: Icon_minigender_1
  • 来自: 安徽
文章分类
社区版块
存档分类
最新评论

Base16 java字符串与十六进制互转 js字符串与十六进制互转

阅读更多
java字符串与十六进制互转,
js字符串与十六进制互转。

支持中文,应用场景如解决传递中文乱码。
由base64想到的base16,十六进制数字母不区分大小写。
思路:一个字节拆成两位十六进制数(一个字节8位,十六进制4位)。

附件提供实现代码,Base32也有一套。

public class Base16 {

	public static String hex2Str(String theHex) {
		char[] chars = theHex.toCharArray();
		int len = chars.length / 2;
		byte[] theByte = new byte[len];

		for (int i = 0; i < len; i++) {
			theByte[i] = Integer.decode("0X" + chars[i*2] + chars[i*2+1]).byteValue();
		}

		return new String(theByte);
	}

	public static String str2Hex(String theStr) {
		int tmp;
		String tmpStr;
		byte[] bytes = theStr.getBytes();
		StringBuffer result = new StringBuffer(bytes.length * 2);

		for (int i = 0; i < bytes.length; i++) {
			tmp = bytes[i];
			if (tmp < 0) {
				tmp += 256;
			}

			tmpStr = Integer.toHexString(tmp);
			if (tmpStr.length() == 1) {
				result.append('0');
			}

			result.append(tmpStr);
		}

		return result.toString();
	}

	public static void main(String[] argv) {
		String a = "abcdef你好吗?";
		String b = str2Hex(a);
		String c = hex2Str(b);
		System.out.println(a);
		System.out.println(b);
		System.out.println(c);
	}

}



引用

http://any512.iteye.com/blog/116217


分享到:
评论

相关推荐

    ImHex:一款功能强大的十六进制编辑器

    功能丰富的十六进制数据界面:字节修复、修复管理、字节拷贝(字节、十六进制字符串、C、C++、C#、Rust、Python、Java和JavaScript数组、HTML自包含div等)。 字符串、十六进制搜索。 自定义C++类模式语言,支持对...

    javascript十六进制数字和ASCII字符之间的转换方法

    //十六进制 var charValue = String.fromCharCode(hex);//生成Unicode字符 var charCode = charValue.charCodeAt(0);//获取指定字符的十进制表示. var hexOri="0x"+charCode.toString(16);;//将int值转换为十六进制 ...

    imhex-功能强大的十六进制编辑器,开源软件

    功能丰富的十六进制数据界面:字节修复、修复管理、字节拷贝(字节、十六进制字符串、C、C++、C#、Rust、Python、Java和JavaScript数组、HTML自包含div等)。字符串、十六进制搜索。自定义C++类模式语言,支持对文件...

    3DES加密解密java版+js版

    JavaScript中,加密结果是`ArrayBuffer`对象,通常会转换成Base64或Hex字符串。 5. **密钥管理与安全性**:确保密钥的安全存储和传输至关重要,避免明文传输。Java可以通过KeyStore管理密钥,JavaScript中则可以...

    ImHex软件.zip

    十六进制字符串 C、C++、C#、Rust、Python、Java 和 JavaScript 数组 ASCII-Art 十六进制视图 HTML 自包含 div 字符串和十六进制搜索 多彩高亮 从开始、结束和当前光标位置转到 用于解析突出显示文件内容的自定义类 ...

    ImHex:适合反向工程师,程序员和在凌晨3点工作时重视视力的人们的十六进制编辑器

    十六进制字符串 C,C ++,C#,Rust,Python,Java和JavaScript数组 ASCII-Art十六进制视图 HTML自包含div 字符串和十六进制搜索 色彩鲜艳 从开始,结束和当前光标位置转到 自定义的类似于C ++的模式语言,用于突出...

    华为OD机试C卷- N进制减法(Java & JS & Python).md-私信看全套OD代码及解析

    本题目旨在测试应聘者对于基础数据结构与算法的理解程度,特别是进制转换与字符串处理方面的能力。题目要求实现一个N进制(2到35)的减法操作,这不仅涉及到了高级编程语言的基础应用,还要求能够灵活地处理不同进制...

    分享JavaScript与Java中MD5使用两个例子

    标题《分享JavaScript与Java中MD5使用两个例子》中的知识点涉及了如何在JavaScript和Java语言中使用MD5加密算法,以及如何将字符串转换为MD5格式。MD5是一种广泛使用的密码散列函数,它可以产生一个128位的散列值...

    Quoted-printable 编码介绍、Quoted-printable编码解码转换方法

    1. 每个字节的值可以编码为三个字符,即一个等号“=”后跟两个十六进制数字(0-9或A-F),这表示该字节的数值。 2. 所有可打印的ASCII字符(十进制值范围为33到126)都可以直接用ASCII字符来表示,但等号“=”(十...

    StringFunctionsPlugin:Intellij Idea插件,用于转换编码字符串

    它专门为IntelliJ IDEA用户提供了快速转换和操作字符串的能力,包括将字符串转换为十六进制或二进制形式,以及对URL、HTML实体、Base64等编码格式进行编码和解码。这些功能的集成,使得开发者无需离开IDE就能完成...

    MD5加密32位小写

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的信息映射为一个固定长度的摘要值,通常是32位的十六进制字符串。MD5在信息安全领域扮演着重要的角色,常用于数据校验、密码存储等...

    27个java工具类

    2. **Md5Util**:MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,生成一个128位的哈希值,通常以32位十六进制字符串表示。此工具类用于计算字符串或文件的MD5哈希值,常用于数据校验和密码存储。 3. ...

    JavaScript中string转换成number介绍

    在JavaScript中,将字符串(string)转换为数字(number)是常见的操作,主要涉及到三种方法:`Number()`、`parseInt()`和`parseFloat()`。这些函数在不同的场景下有着不同的用途和限制。 1. `Number()` 函数: `...

    base64加密解密

    综上所述,Base64是一个实用的二进制数据与ASCII字符串之间的转换工具,虽然不是加密技术,但在很多场景下扮演着关键角色。了解并熟练运用Base64编码,有助于提升开发者的技能水平和解决问题的能力。

    convert string to integer

    - 进制转换:有些语言允许指定字符串的基数(如二进制、八进制、十六进制),如 Python 的 `int(str, base)`。 - 数值溢出:如果字符串表示的数值超出了整型数据类型的范围,转换可能会失败或产生未定义的行为。 ...

    老生常谈javascript的类型转换

    `Number.prototype.toString()`方法接受一个参数,表示要转换的进制,例如,数字10调用`toString(2)`会得到二进制字符串"1010",`toString(8)`会得到八进制字符串"12",`toString(16)`则会得到十六进制字符串"a"。...

    branscha:配置文件存储库

    储存库 应用领域 ... 将字符串编码解码为base64格式或从base64格式解码。 Perl 使用自定义命令控制台应用程序。 项目模板 基本的 :开始。 :Java启动器。 :Java命令。 :Common Lisp启动器。

    crypto-utils:Fluree的Java加密功能集合

    返回公钥和私钥对的十六进制字符串。 JavaScript版本 import { generateKeyPair } from '@fluree/crypto-utils' ; const { publicKey , privateKey } = generateKeyPair ( ) ; Node.js版本 对于Node.js,您将需要...

Global site tag (gtag.js) - Google Analytics