手机短信PDU字符串中用到的7bit加密解密函数
2011-06-29 17:56
537 查看
原文参考:http://www.cnblogs.com/Engin/archive/2010/11/07/1871154.html
整理的代码如下:
/// <summary>
/// PDU字符串用到的7bit的加密函数
/// </summary>
/// <param name="len">用户数据长度</param>
/// <param name="strUserData">数据部分PDU字符串</param>
/// <returns></returns>
public string PDU7bitContentEncoder(string strUserData)
{
string result = string.Empty;
string resultLength = strUserData.Length.ToString("X2"); //7bit编码 用户数据长度:源字符串长度
Encoding encodingAsscii = Encoding.ASCII;
byte[] bytes = encodingAsscii.GetBytes(strUserData);
string temp = string.Empty; //存储中间字符串 二进制串
string tmp;
for (int i = strUserData.Length; i > 0; i--) //高低交换 二进制串
{
tmp = Convert.ToString(bytes[i - 1], 2);
while (tmp.Length < 7) //不够7位,补齐
{
tmp = "0" + tmp;
}
temp += tmp;
}
for (int i = temp.Length; i > 0; i -= 8) //每8位取位为一个字符 即完成编码
{
if (i > 8)
{
result += Convert.ToInt32(temp.Substring(i - 8, 8), 2).ToString("X2");
}
else
{
result += Convert.ToInt32(temp.Substring(0, i), 2).ToString("X2");
}
}
return result;
}
/// <summary>
/// PDU字符串用到的7bit的解密函数
/// </summary>
/// <param name="len">用户数据长度</param>
/// <param name="strUserData">数据部分PDU字符串</param>
/// <returns></returns>
public string PDU7bitContentDecoder(string strUserData)
{
string result = string.Empty;
byte[] b;
b = Hex2Bin(strUserData);
Array.Reverse(b); //字节串翻转
result = Bin2BinStringof8Bit(b);
result = BinStringof8Bit2AsciiwithReverse(result);
return result;
}
整理的代码如下:
/// <summary>
/// PDU字符串用到的7bit的加密函数
/// </summary>
/// <param name="len">用户数据长度</param>
/// <param name="strUserData">数据部分PDU字符串</param>
/// <returns></returns>
public string PDU7bitContentEncoder(string strUserData)
{
string result = string.Empty;
string resultLength = strUserData.Length.ToString("X2"); //7bit编码 用户数据长度:源字符串长度
Encoding encodingAsscii = Encoding.ASCII;
byte[] bytes = encodingAsscii.GetBytes(strUserData);
string temp = string.Empty; //存储中间字符串 二进制串
string tmp;
for (int i = strUserData.Length; i > 0; i--) //高低交换 二进制串
{
tmp = Convert.ToString(bytes[i - 1], 2);
while (tmp.Length < 7) //不够7位,补齐
{
tmp = "0" + tmp;
}
temp += tmp;
}
for (int i = temp.Length; i > 0; i -= 8) //每8位取位为一个字符 即完成编码
{
if (i > 8)
{
result += Convert.ToInt32(temp.Substring(i - 8, 8), 2).ToString("X2");
}
else
{
result += Convert.ToInt32(temp.Substring(0, i), 2).ToString("X2");
}
}
return result;
}
/// <summary>
/// PDU字符串用到的7bit的解密函数
/// </summary>
/// <param name="len">用户数据长度</param>
/// <param name="strUserData">数据部分PDU字符串</param>
/// <returns></returns>
public string PDU7bitContentDecoder(string strUserData)
{
string result = string.Empty;
byte[] b;
b = Hex2Bin(strUserData);
Array.Reverse(b); //字节串翻转
result = Bin2BinStringof8Bit(b);
result = BinStringof8Bit2AsciiwithReverse(result);
return result;
}
相关文章推荐
- 手机短信PDU字符串中用到的7bit加密解密函数
- 手机短信PDU字符串中用到的7bit加密解密函数
- 手机短信PDU字符串中用到的7bit加密解密函数
- 手机短信PDU编码与解码
- .net平台手机管理软件开发(10)—— 短信部分 VB.NET解码PDU
- 手机短信PDU编码与解码
- pdu 短信 7bit解码原理(转)
- GSM模块发PDU格式短信目标手机接收不到,怎么回事?
- AT指令对wavecom串口GSM工业手机发送短信(英文和PDU短信)
- AT指令对wavecom串口GSM工业手机发送短信(英文和PDU短信)
- .net平台手机管理软件开发(11)—— 短信部分 VB.NET编码PDU
- 中英文手机短信 PDU 串 编码(UCS2) 解码(UCS2,7-Bit) 程序 ( in C# )
- IOS开发之——登录加密也许用到的,反转字符串
- 短信猫软件的实现(C#)<九>7bitPDU的编码
- AT指令对wavecom串口GSM工业手机发送短信(英文和PDU短信)
- pdu发送短信到手机到小灵通到特服号心得——(一)
- 短信猫软件的实现(C#)<八>7bitPDU的解码
- 手机短信(SMS)PDU编码与解码
- 手机短信的PDU编码和解码
- 使用.net开发手机管理软件 (十) 短信部分——VB.NET解码PDU