首页 > 安全资讯 >

IOS NSData 与 Java十六进制的知识学习讲解

18-07-31

IOS NSData 与 Java十六进制的知识学习讲解。近期公司项目用到了加密,IOS使用本身自带的NSData将字符串转化为一串 数字+英文的(着实看不懂)

近期公司项目用到了加密,IOS使用本身自带的NSData将字符串转化为一串 数字+英文的(着实看不懂)

经过大量百度,谷歌。以及求教IOS查看NsData底层实现,发现就是讲String字符串转成了十六进制。

例如:String str="123abc42l4jk234"; 转化后:31323361626334326c346a6b323334

附上字符串转16进制代码:

	/**
	 * 字符串转化成为16进制字符串
	 * @param s
	 * @return
	 */
	public static String strTo16(String s) {
	 String str = "";
	 for (int i = 0; i < s.length(); i++) {
	  int ch = (int) s.charAt(i);
	  String s4 = Integer.toHexString(ch);
	  str = str + s4;
	 }
	 return str;
	}
	
	/**
	 * 16进制转换成为string类型字符串
	 * @param s
	 * @return
	 */
	public static String hexStringToString(String s) {
	 if (s == null || s.equals("")) {
	  return null;
	 }
	 s = s.replace(" ", "");
	 byte[] baKeyword = new byte[s.length() / 2];
	 for (int i = 0; i < baKeyword.length; i++) {
	  try {
	baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(i * 2, i * 2 + 2), 16));
	  } catch (Exception e) {
	e.printStackTrace();
	  }
	 }
	 try {
	  s = new String(baKeyword, "UTF-8");
	  new String();
	 } catch (Exception e1) {
	  e1.printStackTrace();
	 }
	 return s;
	}
相关文章
最新文章
热点推荐