找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: workbaby

[pppoe] 在做的pppoe帐号管理系统-api对接

  [复制链接]
发表于 2010-8-3 22:53:38 | 显示全部楼层
不错 不错
routeros
回复

使用道具 举报

发表于 2010-8-4 00:47:50 | 显示全部楼层
看看
routeros
回复

使用道具 举报

发表于 2010-8-4 00:51:06 | 显示全部楼层
高级模式 | 发新话题
routeros
回复

使用道具 举报

发表于 2010-8-19 04:51:49 | 显示全部楼层
han han
routeros
回复

使用道具 举报

发表于 2010-8-19 05:20:49 | 显示全部楼层
本帖最后由 ccxxzz 于 2010-8-19 05:28 编辑

C#代码有现成的:
using System;
using System.Security.Cryptography;
using System.Collections.Generic;

namespace System.Net.Radius
{

    class Utils
    {
        static public byte[] makeRFC2865RequestAuthenticator(string sharedSecret)
        {
            byte[] sharedS = System.Text.Encoding.ASCII.GetBytes(sharedSecret);
            byte[] requestAuthenticator = new byte[16 + sharedS.Length];
            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[data.Length + ssArray.Length];
            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[128];
                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[userPassBytes.Length];
                }
                else
                {
                    encryptedPass = new byte[((userPassBytes.Length / 16) * 16) + 16];
                }
            }
            else
            {
                encryptedPass = new byte[128];
            }
            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[requestAuthenticator.Length + ssArray.Length];
            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);
            }
            //[TODO] encryptedPass.Length > 16

            return encryptedPass;
        }
    }
}
调用的时候大家注意调用方法!
直接复制,在VS2008中做成DLL.方法:点 新建  项目  类库, 2、点项目、生成,生成release;3、点生成、培植管理、RELEASE DLL,4、DLL就生成了,然后利用DLL。就可做这样的RADIUS!
routeros
回复

使用道具 举报

发表于 2010-8-19 11:45:25 | 显示全部楼层
强烈支持。想拜师教下我可以吗。我现在就是弄数据包弄不明白。其他都可以
routeros
回复

使用道具 举报

发表于 2010-8-19 18:00:14 | 显示全部楼层
不错,这玩意好,
routeros
回复

使用道具 举报

发表于 2010-8-19 22:07:56 | 显示全部楼层
还有重量级的,在管理3000用户的
routeros
回复

使用道具 举报

发表于 2010-8-20 00:35:23 | 显示全部楼层
看看啊
routeros
回复

使用道具 举报

发表于 2010-8-20 02:26:57 | 显示全部楼层
ding顶
routeros
回复

使用道具 举报

发表于 2010-8-20 02:35:39 | 显示全部楼层
强人啊 这么牛啊@
routeros
回复

使用道具 举报

发表于 2010-8-21 02:02:42 | 显示全部楼层
看看。。。。
routeros
回复

使用道具 举报

发表于 2010-8-21 10:51:32 | 显示全部楼层
的风格地方撒地方
routeros
回复

使用道具 举报

发表于 2010-8-22 17:00:48 | 显示全部楼层
看看
routeros
回复

使用道具 举报

发表于 2010-8-25 17:04:08 | 显示全部楼层
研究下看看有没有测试版本
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-11-24 06:39 , Processed in 0.125601 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表