⑴ 各位大牛,怎么把这个字符串转换成十六进制的字符串
一.根据byte的二进制值,分别取高低的四位转换成16进制字符
String str = "我";
byte[] ba;
try {
ba = str.getBytes("UTF-16");
char[] ca = "0123456789abcdef".toCharArray();
StringBuffer sb;
for (byte b : ba) {
sb = new StringBuffer();
int bi = (b & 0xf0) >> 4;
sb.append(ca[bi]);
int bi2 = b & 0x0f;
sb.append(ca[bi2]);
System.out.println(sb);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
二.直接调用Integer.toHexString()方法,然后再截取后两位
String strSource = "我";
try {
byte[] ba = strSource.getBytes("UTF-16");
String str;//
for (byte b : ba) {
if (b == 0) {
str = "0x00";
} else if (b == -1) {
str = "0xFF";
} else {
// 将int类型数字转换成‘16进制’格式的字符串
str = Integer.toHexString(b).toUpperCase();
if (str.length() > 2) {// 此时为‘负数’
// 截取‘16进制格式字符串’的最后两位字符
str = str.substring(str.length() - 2);
}
str = "0x" + str;
}
System.out.println(str);
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
⑵ md5加密以后的字符串长度
加密后为128位(bit),按照16进制(4位一个16进制数)编码后,就成了32个字符。MD5并不是加密算法,而是摘要算法。加密算法是可逆的,摘要算法是理专论上不可逆的,详细步骤:
1、md5算法主要应用在密码领域,为了防止明文传输密码的危险性,一般会用密码的md5值来代替密码本身。
⑶ VC++ DES加密了一段字符 怎么把这个加密后得到的密文转换为16进制
charszOutput[512]={0};
for(inti=0;i<len;i++){
sprintf(szOutput+i*2,"%.2x",(unsignedchar)out[i]);
}
⑷ MD5加密后如何转换为16进制字符串
要看你是什么编码。
如果是ASC码那么就是8位2进制一个字符,也就是两个十六进制位。
所以,你可以将这个十六进制字符串除0x以外,两位一组,每一组可以使用CHAR(0x0C)的方式转换为字符,再串加在一起就行了。
如果是UNICODE字符,那么就是4位十六进制(16位二进制)一组进行转换。
如第一个字符就是:select nchar(0x0C45),第二个字符就是select nchar(0x0000)
⑸ C++ DES加密了一段字符 怎么把这个加密后得到的密文转换为16进制
你好!这个看你要实现什么目的,是单字节转换,还是双字节转换
⑹ PHP md5密文转换成 16进制字符串
substr(md5($str),8,16);
⑺ 怎样把一个字符串转换成16进制
主要有两个方法,其实都是对现有函数的使用:
方法1: sscanf()
函数名: sscanf
功 能: 从字符串格式化输入
用 法: int sscanf(char *string, char *format[,argument,...]);
以上的 format 为 %x 就是将字符串格式化为 16 进制数
例子:
#include <stdio.h>
void main()
{
char* p = "0x1a";
int nValude = 0;
sscanf(p, "%x", &nValude);
printf("%d\r\n", nValude);
}
输出:
26
方法2: strtol()
函数名: strtol
功 能: 将字符串转换为长整数
用 法: long strtol(char *str, char **endptr, int base);
上面的base就是我们要转换为几进制数
例子:
#include <stdio.h>
#include <stdlib.h>
void main()
{
char* p = "0x1b";
char* str;
long i = strtol(p, &str, 16);
printf("%d\r\n", i);
}
输出:
27
其实还有一种方法,就是用一个初始化为0~9~a~f的字符串数组,也就是一个十六进制对应表,用这个对应表即可算出一个十六进制字符串的数值,但这种发发太麻烦了,不推荐使用。
⑻ android字符串转换成16进制怎么转
android字符串转换成16进制,参考如下内容:
/**
* 字符串转换成十六进制字符串
* @param String str 待转换的ASCII字符串
* @return String 每个Byte之间空格分隔,如: [61 6C 6B]
*/
public static String str2HexStr(String str)
{
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++)
{
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
sb.append(' ');
}
return sb.toString().trim();
}
⑼ 怎么把中文字符串转换成十六进制
假设
dim strSMS as String
strSMS="我的昵称是iamben,欢迎大家来到我的VB.NET兴趣小组"
现在怎样才能将strSMS转换为unicode 后再转换为16进制的字符串呢?
Dim i As Integer
Dim j As Integer
Dim h As Integer
Dim strTmpSMS As String
i = Len(strSMS)
strTmpSMS = ""
For j = 1 To i
h = AscW(Mid(strSMS, j, 1))
If Abs(h) < 127 Then
strTmpSMS = "00" & Hex(h)
Else
strTmpSMS = Hex(h)
End If
GBToUnicode = GBToUnicode & strTmpSMS
Next
⑽ 我用C语言编写MD5加密,但是不懂MD5算法是如何将密码字符换成16进制字符的呢
比如说字符1吧 十六进制就是31H
你这样写 字符+0x30就可以了