剩下的就是数字签名了,但也没有什么,最终重要的就是: 密钥appKey每两位长度转为10进制,然后再转为字节数组,整个数组为加密密钥
其实,我看数字签名的生成过程是崩溃的,还好这步,对接人给我的C#代码里面有,我就直接用了。给个代码吧:
class DESEncrypt
{
public static int decode(String paramString, MemoryStream paramOutputStream)
{
byte[] encodingTable = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102 };
//byte[] decodingTable = new byte['?'];
byte[] decodingTable = new byte[256];
for (int i = 0; i < encodingTable.Length; i++)
{
decodingTable[encodingTable[i]] = (byte)i;
}
decodingTable[65] = decodingTable[97];
decodingTable[66] = decodingTable[98];
decodingTable[67] = decodingTable[99];
decodingTable[68] = decodingTable[100];
decodingTable[69] = decodingTable[101];
decodingTable[70] = decodingTable[102];
int k = 0;
int m = 0;
for (m = paramString.Length; (m > 0) && (ignore(char.Parse(paramString.Substring(m - 1, 1)))); m--) ;
int n = 0;
while (n < m)
{
while ((n < m) && (ignore(char.Parse(paramString.Substring(n, 1)))))
n++;
int i = decodingTable[char.Parse(paramString.Substring(n++, 1))];
while ((n < m) && (ignore(char.Parse(paramString.Substring(n, 1)))))
n++;
int j = decodingTable[char.Parse(paramString.Substring(n++, 1))];
paramOutputStream.WriteByte((byte)(i << 4 | j));
k++;
}
return k;
}
public static bool ignore(char paramChar)
{
return (paramChar == '\n') || (paramChar == '\r') || (paramChar == '\t') || (paramChar == ' ');
}
}
要不然,我是不好下手。