![]()
点击查看代码
/*
* 由SharpDevelop创建。
* 用户: Administrator
* 日期: 2022/2/24
* 时间: 10:18
*
* 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
*/
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Net.NetworkInformation;
using System.Net;
using System.IO;
using System.Text;
namespace 自动登录
{
/// <summary>
/// Description of MainForm.
/// </summary>
public partial class MainForm : Form
{
[DllImport("wininet.dll", EntryPoint = "InternetGetConnectedState")]
public extern static bool InternetGetConnectedState(out int conState, int reader);
public MainForm()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
//
// TODO: Add constructor code after the InitializeComponent() call.
//
}
String encrypt_rc4(String src,String passwd)
{
int i,j=0,a=0,b=0,c=0, temp;
String tempString;
int plen = passwd.Length;
int size = src.Length;
byte[] buffer;
src=src.Trim();
passwd = passwd.Trim();
int[] key = new int[256]; //int
int[] sbox = new int[256]; ; //int
String[] output = new String[size]; //code of data
for (i = 0; i < 256; i++) {
buffer = System.Text.Encoding.ASCII.GetBytes(passwd.Substring(i% plen,1).ToString());
key[i]=Int32.Parse(String.Format("{0:X2}",buffer[0]),System.Globalization.NumberStyles.HexNumber);
sbox[i] = i;
}
for (i = 0; i < 256; i++) {
j = (j + sbox[i] + key[i]) % 256;
temp = sbox[i];
sbox[i] = sbox[j];
sbox[j] = temp;
}
for (i = 0; i < size; i++) {
a = (a + 1) % 256;
b = (b + sbox[a]) % 256;
temp = sbox[a];
sbox[a] = sbox[b];
sbox[b] = temp;
c = (sbox[a] + sbox[b]) % 256;
buffer = System.Text.Encoding.ASCII.GetBytes(src.Substring(i,1).ToString());
temp = (Int32.Parse(String.Format("{0:X2}",buffer[0]),System.Globalization.NumberStyles.HexNumber)) ^ sbox[c];//String.fromCharCode(src.charCodeAt(i) ^ sbox[c]);
tempString = Convert.ToString(temp,16);
if (tempString.Length == 1) {
tempString = "0" + temp;
} else if (tempString.Length == 0)
{
tempString = "00";
}
output[i] = tempString;
}
return String.Join("",output);
}
bool netconnected(out int i)
{
if(!InternetGetConnectedState(out i,0))return false;
Ping ping = new Ping();
PingReply reply = ping.Send("www.baidu.com");//百度IP
return reply.Status == IPStatus.Success;
}
String timeStamp()
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
long time = (long)(DateTime.Now - startTime).TotalMilliseconds; // 相差毫秒数
return time.ToString();
}
String sendPost(String strURL,String data)
{
Util.SetCertificatePolicy();
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strURL);
request.Method = "POST";
request.ContentType = "application/json;charset=utf-8";
byte[] param = System.Text.Encoding.UTF8.GetBytes(data);
request.ContentLength = param.Length;
System.IO.Stream writer = request.GetRequestStream();
writer.Write(param, 0, param.Length);
writer.Close();
System.Net.HttpWebResponse response;
try
{
response = (System.Net.HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
response = (System.Net.HttpWebResponse)ex.Response;
}
StreamReader myreader = new System.IO.StreamReader(response.GetResponseStream(), Encoding.UTF8);
//返回的结果
string strResult = myreader.ReadToEnd();
myreader.Close();
return strResult;
}
void Button1Click(object sender, EventArgs e)
{
if(button1.Text=="启动")
{
button1.Text="停止";
}
else
{
button1.Text="启动";
}
}
void Button2Click(object sender, EventArgs e)
{
String dat=timeStamp();
String pwd=encrypt_rc4("xinzilee87",dat);
String data=String.Format("opr: {0},userName: {1},pwd: {2},auth_tag:{3}","pwdlogin","123777",pwd,dat);
data="{"+data+"}";
String ret=sendPost("https://1.1.1.2/homepage/login.php",data);
this.richTextBox1.Text=ret;
}
}
}
点击查看代码
/*
* 由SharpDevelop创建。
* 用户: Administrator
* 日期: 2022/2/24
* 时间: 13:02
*
* 要改变这种模板请点击 工具|选项|代码编写|编辑标准头文件
*/
using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
namespace 自动登录
{
/// <summary>
/// Description of Util.
/// </summary>
public static class Util
{
// <summary>
/// Sets the cert policy.
/// </summary>
public static void SetCertificatePolicy()
{
ServicePointManager.ServerCertificateValidationCallback
+= RemoteCertificateValidate;
}
/// <summary>
/// Remotes the certificate validate.
/// </summary>
private static bool RemoteCertificateValidate(
object sender, X509Certificate cert,
X509Chain chain, SslPolicyErrors error)
{
// trust any certificate!!!
System.Console.WriteLine("Warning, trust any certificate");
return true;
}
}
}