ccxxzz 发表于 2010-7-31 15:01:47

本帖最后由 ccxxzz 于 2010-7-31 15:03 编辑

呵呵,软件自己开放18121813啊,你只要把防火墙开了这2个端口开放就是!晕倒!!
MSCHAP V2 就是RFC2759看了又看,问题比较大,完全没有看V1的,反倒把MSCHAP V1的模糊认证做成了!

qbs315 发表于 2010-7-31 23:49:20

楼主请问可以直接改用户网速么,ros路由会对应变速么,这个系统适合ros哪个版本,最后顶您,强人。

ccxxzz 发表于 2010-8-1 14:29:57

本帖最后由 ccxxzz 于 2010-8-1 14:36 编辑

软件里面控制速度,根本不行的,那样会造成客户PPPOE断线,这样做速度限制到软件里面,是会影响信誉的!!!

V1.0.3加入MAC地址捆绑功能,MSCHAP V1模糊认证

ab30 发表于 2010-8-3 22:20:44

ddddddddddddddddddddddddddddddddddddddddddddd

ccxxzz 发表于 2010-8-4 03:04:36

更新 MSCHAP 模糊认证,任何帐号可登陆,当然注意请大家注意那四个优先原则,只能勾一个;订单模式:可以添加子帐号的模式和 续费 方式;更新多NAS的认证模式;加了数据库再次开发的说明.

chengye 发表于 2010-8-18 04:50:38

很久不顶了,再来一下,继续努力!!

ccxxzz 发表于 2010-8-18 10:32:55

本帖最后由 ccxxzz 于 2010-8-19 05:37 编辑

最新1.0.3,支持WEB直接管理控制应用软件\MAC捆绑\MSCHAP1模糊认证->可做压力实验(无任何限制)\多NAS认证\

那2M多的WEB视频传不上,只需要修改WEB.CONFIG中
<add key="ConnString" value="Server=127.0.0.1;User Id=root;Password=root;Persist Security Info=True;Database=xnzyradius"/>

和ASP.NET V2的设置,就是配置中的可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

下一版本的方向:
  支持802.1X认证管理,完善MSCHAP  V1和V2

txwwy 发表于 2010-8-18 10:57:19

最好还是要把下发限速属性加进去,这样方便一些。

ccxxzz 发表于 2010-8-19 05:30:23

本帖最后由 ccxxzz 于 2010-8-19 05:36 编辑

想要开源的东西,就给大家吧!
using System;
using System.Security.Cryptography;
using System.Collections.Generic;

namespace Xnzy.Radius
{

    class Utils
    {
      static public byte[] makeRFC2865RequestAuthenticator(string sharedSecret)
      {
            byte[] sharedS = System.Text.Encoding.ASCII.GetBytes(sharedSecret);
            byte[] requestAuthenticator = new byte;
            Random r = new Random();
            for (int i = 0; i < 16; i++)
                requestAuthenticator = (byte)r.Next();
            Array.Copy(sharedS, 0, requestAuthenticator, 16, sharedS.Length);
            MD5 md5 = new MD5CryptoServiceProvider();
            md5.ComputeHash(requestAuthenticator);
            return md5.Hash;
      }

      static public byte[] makeRFC2865ResponseAuthenticator(byte[] data, byte[] requestAuthenticator, string sharedSecret)
      {
            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] ssArray = System.Text.Encoding.ASCII.GetBytes(sharedSecret);
            byte[] sum = new byte;
            Array.Copy(data, 0, sum, 0, data.Length);
            Array.Copy(requestAuthenticator, 0, sum, 4, 16);
            Array.Copy(ssArray, 0, sum, data.Length, ssArray.Length);
            md5.ComputeHash(sum);
            return md5.Hash;
      }

      static public byte[] encodePapPassword(byte[] userPass, byte[] requestAuthenticator, string sharedSecret)
      {

            System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();

            byte[] userPassBytes = null;
            if (userPass.Length > 128)
            {
                userPassBytes = new byte;
                System.Array.Copy(userPass, 0, userPassBytes, 0, 128);
            }
            else
            {
                userPassBytes = userPass;
            }
            byte[] encryptedPass = null;

            if (userPassBytes.Length < 128)
            {
                if (userPassBytes.Length % 16 == 0)
                {
                  encryptedPass = new byte;
                }
                else
                {
                  encryptedPass = new byte[((userPassBytes.Length / 16) * 16) + 16];
                }
            }
            else
            {
                encryptedPass = new byte;
            }
            System.Array.Copy(userPassBytes, 0, encryptedPass, 0, userPassBytes.Length);
            for (int i = userPassBytes.Length; i < encryptedPass.Length; i++)
            {
                encryptedPass = 0;
            }
            byte[] ssArray = System.Text.Encoding.ASCII.GetBytes(sharedSecret);
            byte[] sum = new byte;
            Array.Copy(ssArray, 0, sum, 0, ssArray.Length);
            Array.Copy(requestAuthenticator, 0, sum, ssArray.Length, requestAuthenticator.Length);
            md5.ComputeHash(sum);
            byte[] bn = md5.Hash;

            for (int i = 0; i < 16; i++)
            {
                encryptedPass = (byte)(bn ^ encryptedPass);
            }
            // encryptedPass.Length > 16

            return encryptedPass;
      }
    }
}是C#标准算法,RFC2865;直接类库做成DLL,通过DLL调用就能实现的算法;请使用VS2008编程!
反正是网上的,不是我的,我如果用这个C#写,那程序就太膨大了,需要.net frame

ccxxzz 发表于 2010-8-22 23:52:14

如果你做WIN2003下ASP.NET V2.0网站,无此项目,请安装WEB服务器的.NET FRAME 3.5
http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe

ccxxzz 发表于 2010-8-22 23:59:29

ROS2.9.7或者以下不支持在线踢人功能,2天后奉献23号端口网络连接的备用 实时踢人的DLL文件调用!

qbs315 发表于 2010-8-25 00:41:50

真强,顶楼主。

ccxxzz 发表于 2010-8-26 00:02:42

本帖最后由 ccxxzz 于 2010-8-26 00:08 编辑

23号端口,直接管理ROUTEOS端口,全部源代码,只是提供一个方法,需要你去创意和写点代码,处理ROS里面的格式输出

寒风落叶 发表于 2010-8-26 00:45:01

支持支持

ionline 发表于 2010-8-28 13:03:29

处理ROS里面的格式输出
页: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16
查看完整版本: 自己做的认证管理系统