// password 密码明文
// servertime 提交的参数之一
// nonce 提交的参数之一
// encode_password 输出的加密后的16进制字符串,40个字符
// 返回 encode_password 的长度, 失败则返回0
PASSENCODE_API int SinaSha1Encode(char *password, char *servertime, char *nonce, char *encode_password)
{
if (encode_password)
{
encode_password[0]=NULL;
//定义要sha1的字符串
char pTemp[400]={0};
//定义返回的sha1值
char szHash[41] ={0};
strcpy(pTemp,password);
SHA1((unsigned char*)pTemp, szHash, 41);
strcpy(pTemp,szHash);
SHA1((unsigned char*)pTemp, szHash, 41);
strcpy(pTemp,szHash);
if (servertime) strcat(pTemp,servertime);
if (nonce) strcat(pTemp,nonce);
SHA1((unsigned char*)pTemp, szHash, 41);
strcpy(encode_password,szHash);
return strlen(encode_password);
}
return 0;
}
出处:
http://blog.csdn.net/TDGX2004/archive/2011/05/28/6452021.aspx
解决方案 »
- 求助求助。导出execl文件进度条的问题。
- C/S结构的网络程序运行慢
- 请教一个winform c# 复合控件的问题
- 以WEB方式向在线用户和非在线用户发送消息。
- 求一计算椭圆部分面积的算法,比如已知椭圆长轴a和短轴b,逆时针旋转30度,求其面积?
- *********** 关于c# 通过Excel输出DBF文件的问题。(紧急求救!!!!) **********
- 关于水晶报表,怎么样让主表的字段和子表的字段保持相等?
- 请问类似QQ群发消息的功能是怎么实现的呀?
- 求C#论坛的免费源代码
- 怎么加密一个文件呢?
- 为什么adsl重连换ip频率过快,ip有时候不会马上改变?
- 在C#中构建json 字符串的问题
public string EncryptToSHA1(string str)
{
SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider();
byte[] str1 = Encoding.UTF8.GetBytes(str);
byte[] str2 = sha1.ComputeHash(str1);
sha1.Clear();
(sha1 as IDisposable).Dispose();
return Convert.ToBase64String(str2);
}
#endregion
nonce怎么求?
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
Proxy-Connection: Keep-Alive
Content-Length: 0
Host: mail.qq.com
Pragma: no-cacheThe data sent represents an SSLv3-compatible ClientHello handshake. For your convenience, the data is extracted below.Major Version: 3
Minor Version: 1
Random: 4D FB 6F 79 29 08 FB BB 00 FA F1 22 35 08 E5 79 23 BF CD 75 2E 8F 4E 24 46 6E E7 65 32 E7 7F 29
SessionID: 1C 34 D6 6A 2A 4B 69 44 C8 86 16 24 F6 8D E9 66 F2 A9 09 5E 6A 8C 7D 2B A8 36 39 1A 9A 7C BB C0
Ciphers:
[002F] TLS_RSA_AES_128_SHA
[0035] TLS_RSA_AES_256_SHA
[0005] SSL_RSA_WITH_RC4_128_SHA
[000A] SSL_RSA_WITH_3DES_EDE_SHA
[C013] TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA
[C014] TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA
[C009] TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
[C00A] TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
[0032] TLS_DHE_DSS_WITH_AES_128_SHA
[0038] TLS_DHE_DSS_WITH_AES_256_SHA
[0013] SSL_DHE_DSS_WITH_3DES_EDE_SHA
[0004] SSL_RSA_WITH_RC4_128_MD5
返回的数据:HTTP/1.0 200 Blind-Connection Established
FiddlerGateway: Direct
StartTime: 23:15:05.570
EndTime: 23:15:05.869This is a CONNECT tunnel, through which encrypted HTTPS traffic flows. To view the encrypted sessions inside this tunnel, ensure that the Tools > Fiddler Options > HTTPS > Decrypt HTTPS traffic option is checked.The data sent represents an SSLv3-compatible ServerHello handshake. For your convenience, the data is extracted below.Major Version: 3
Minor Version: 1
SessionID: 70 94 63 2C 55 DA 70 0F 86 5D 71 A9 2B 43 37 5B 42 50 0D 1D 47 99 96 12 DE 8A 8C 08 81 C0 91 DF
Random: 4D FB 6F EE AC 7E 26 F8 A0 57 0D C9 07 D3 62 57 54 FD 0E F7 18 02 F6 3C 77 A9 30 1E 9B 7E 1F C3
Cipher: 0x35
请问一下,这类请求如何用 httpwebrequest来发送???