aaa

mschapv2在Radius中的认证实现

与世无争的帅哥 提交于 2020-04-10 15:27:30
mschapv2在Radius中的认证实现 在Radius的认证请求AccessRequest包中如果包含 MS-CHAP2-Response 和 MS-CHAP-Challenge 属性则意味着需要实现ms-chap-v2认证。 客户端 MS-CHAP2-Response 和 MS-CHAP-Challenge 生成的规则 MS-CHAP-Challenge MS-CHAP-Challenge (即AuthChallenge) 是客户端生成的随机16字节。 MS-CHAP2-Response 随机生成16字节属性 PeerChallenge,连同AuthChallenge,UserName,Password作为输入参数,调用方法 GenerateNTResponse 得到 NtResponse. GenerateNTResponse(AuthChallenge, PeerChallenge, UserName, Password) GenerateNTResponse 方法的实现参考 http://tools.ietf.org/html/rfc2759.html#section-8.1 封装50字节的 MS-CHAP2-Response 属性: [0 : 2] Flags \x00\x00 [2 : 18] PeerChallenge [18 : 26] Reserved

一、基本数据类型及常用方法

岁酱吖の 提交于 2020-04-07 11:34:04
一. 数字 int 1. int 将字符串转换成数字 a="123" print(type(a),a) a=int(a) print(type(a),a) #指定字符串进制 a="0011" a=int(a,base=16) print(a)   2. bit_length 当前数字转换为二进制数至少需要几位数 a=11 b = a.bit_length() print(b) 二. 字符串str 1. capitalize 首字母大写 str='hello' v=str.capitalize() print(v)运行结果:Hello 2. casefold 转换为小写,与lower功能相同,但比lower功能强大 str='HeLLo' v=str.casefold() print(v)运行结果:hello 3. center 将字符串放在中间,并用指定字符(0或1个,不指定默认空格)填充两边,使达到指定长度 str='hello' v=str.center(20,"#") print(v)运行结果:#######hello######## 4. count 计算字符串中指定子字符串的个数,可指定其实结束位置,左闭右开 str="buhuanfhgujk" v1=str.count('u') v2=str.count('u',0,10) v3=str.count('u',0,9)

关于内存数据与 JSON

南楼画角 提交于 2020-03-31 15:42:18
闲话 : 正在用 WebBroker 写一个小网站,感受颇多: 1、如果是写一个小东西,应该先考虑下 WebBroker,因为它是分分钟即可上手的。 2、如果要写一个大东西,或许也应该考虑下 WebBroker,因为相比其他它有着最高的灵活度(但这只是想像,因为我只是写了一个小东西)。 3、Delphi 3 就有了 WebBroker,可惜现在才开始使用它;随着“服务器”与“网页程序”的普及,WebBroker 应该会被更多地提起。 期间用到了 json, 所以有了这篇博文。 Delphi 与内存数据的总结与回顾 : 1、普通类型变量:储存一个数据。 2、数组:储存一组同类型的数据。 3、结构体:储存一组不同类型的数据;现在的结构体越来越复杂了,还可以操作这些个数据,越来越像“类”了。 4、“键值”对:我一般使用 TStringList,并常常用它代替 ini 文件类;同类还有 THashedStringList、TStringHash。 5、分类的 “键值”对:TMemIniFile、TIniFile; 另外还有人用 sqlite 做了一个可以储存二进制数据的 ini 文件类(忘了名了),我试过,非常好用(在官方示例中)。 6、内存数据表:现在应该首选 TFDMemTable 了(之前是 TClientDataSet)。 7、数据库级别的内存(或文件)数据:SqLite。 8

orcle imp/exp 导入导出dmp 文件

时光总嘲笑我的痴心妄想 提交于 2020-03-18 12:30:36
某厂面试归来,发现自己落伍了!>>> 导入 文件 需要导入的用户 来源用户 登陆的用户 imp file=E:\oraback\ERP20200106.dmp userid=aaa/123456 @127.0.0.1 fromuser=NC65 touser=aaa 导出 exp NC65/123456 @orcl file=d:\daochu.dmp owner=(NC65) 指定用户 来源: oschina 链接: https://my.oschina.net/u/3022323/blog/3197408

JS作用域面试题总结

放肆的年华 提交于 2020-03-17 08:53:20
关于JS作用域问题,是面试的时候面试官乐此不疲的面试题,有时候确实是令人抓狂,今天看到一个讲解这个问题的视频,明白了那些所谓的“原理”顿时有种豁然开朗的感觉~~~ 1.js作用域(全局变量,局部变量)内部可以访问外部,但外部的不能访问内部的 var a=10; function aaa(){ alert(a); }; aaa(); //a 为外部变量即全局变量,所以可以直接访问到 结果为10 function aaa(){ var a=10; }; aaa(); alert(a); //a 为函数aaa()内部变量量即局部变量,所以无法访问到 var a=10; function aaa(){ alert(a); }; function bbb(){ var a=20; aaa(); } bbb(); //结果为10,因为aaa()函数不能访问到bbb()里面的局部变量,所以访问到的是a=10,这个全局变量。 2.不用var 定义变量时,会默认为是全局变量(不规范,不推荐) function aaa(){ a=10; } aaa(); alert(a); //结果为10; //等价于: var a; function aaa(){ a=10; }; aaa(); alert(a); //给未声明的变量赋值,此变量就会变成全局变量;var a=b=10; 可以解析成 b=10;var

ES6 解构赋值

ⅰ亾dé卋堺 提交于 2020-03-15 20:55:21
对象的扩展运算符(...)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中。 拷贝对象 let aa = { age: 18, name: 'aaa' } let bb = {...aa}; console.log(bb); // {age: 18, name: "aaa"} 合并对象 扩展运算符(...)可以用于合并两个对象 let aa = { age: 18, name: 'aaa' } let bb = { sex: '男' } let cc = {...aa, ...bb}; // 等同于: // let cc = Object.assign({}, aa, bb); console.log(cc); // {age: 18, name: "aaa", sex: "男"} 拷贝并修改对象 在扩展运算符后面,加上自定义的属性,则扩展运算符内部的同名属性会被覆盖掉。 let aa = { age: 18, name: 'aaa' } let dd = {...aa, name: 'ddd'}; // 等同于: // let dd = {...aa, ...{name: 'ddd'}}; // let dd = Object.assign({}, aa, { name: 'ddd'}); console.log(dd); // {age: 18, name: "ddd"}

shell学习(sed)

可紊 提交于 2020-03-15 08:19:04
sed 可以分析 Standard Input (STDIN) 的数据, 然后将数据经过处理后,再将他输出到 standrad out (STDOUT) 的一个工具。它可以进行取代、删除、新增、撷取特定行等等的功能。 sed [-nefr] [动作] 参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的数据一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在指令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。(预设是基础正规表示法语法) 动作说明: [n1[,n2]]function n1, n2 :不见得会存在,一般代表『选择进行动作的行数』,举例来说,如果我的动作是需要在 10 到 20 行之间进行的,则『 10,20[动作行为] 』 function 有底下这些咚咚: a :新增, a 的后面可以接字符串,而这些字符串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字符串,这些字符串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i

java函数参数默认值

落爺英雄遲暮 提交于 2020-03-12 04:34:45
java通过函数的重载来实现函数参数默认值 public class ParameterDefault { /** * @param args */ public String getName(String givenName,String familyName){ return givenName+"."+familyName; } public String getName(String givenName){ return getName(givenName,"Xie"); //默认值 } public static void main(String[] args) { // TODO Auto-generated method stub ParameterDefault parameterDefault=new ParameterDefault(); System.out.println(parameterDefault.getName("AAA")); System.out.println(parameterDefault.getName("AAA", "Liu")); } } 来源: https://www.cnblogs.com/liaojie970/p/7286751.html

7-38 数列求和-加强版 (20分)

╄→гoц情女王★ 提交于 2020-03-05 06:43:02
给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A)。例如A=1, N=3时,S=1+11+111=123。 输入格式: 输入数字A与非负整数N。 输出格式: 输出其N项数列之和S的值。 输入样例: 1 3 输出样例: 123 /*思路:把要相加的在纸上列出来,不难发现一个规律: 实现代码如下: # include <stdio.h> int main ( ) { int a , n , i = 0 , s [ 100005 ] = { 0 } ; //用数组来存储结果 scanf ( "%d %d" , & a , & n ) ; if ( n == 0 ) printf ( "0" ) ; //n==0的情况单独分析 for ( i = 0 ; i <= n ; i ++ ) { s [ i ] + = a * ( n - i ) ; s [ i + 1 ] = s [ i ] / 10 ; //向前进位 s [ i ] = s [ i ] % 10 ; } for ( i = n ; i >= 0 ; i -- ) { if ( i == n && s [ i ] == 0 ) continue ; //若最高位为0则不输出 printf ( "%d" , s [ i ] ) ; } return 0 ; }

SQL经典代码---合并列值

别来无恙 提交于 2020-03-04 20:12:58
合并列值 原著:邹建 改编:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-12-16 广东深圳 表结构,数据如下: id value ----- ------ 1 aa 1 bb 2 aaa 2 bbb 2 ccc 需要得到结果: id values ------ ----------- 1 aa,bb 2 aaa,bbb,ccc 即:group by id, 求 value 的和(字符串相加) 1. 旧的解决方法(在sql server 2000中只能用函数解决。) --1. 创建处理函数 create table tb(id int, value varchar(10)) insert into tb values(1, 'aa') insert into tb values(1, 'bb') insert into tb values(2, 'aaa') insert into tb values(2, 'bbb') insert into tb values(2, 'ccc') go CREATE FUNCTION dbo.f_str(@id int) RETURNS varchar(8000) AS BEGIN DECLARE @r varchar(8000) SET @r = '' SELECT @r = @r + ',' + value FROM tb