⑴ 各位大牛,怎麼把這個字元串轉換成十六進制的字元串
一.根據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就可以了