小编use*_*280的帖子

使用Python创建WPA消息完整性代码(MIC)

我试图为WPA握手数据包计算MIC,但不幸的是,它失败了。更确切地说,我采用了802.1x数据包(如规范所述)。

MIC = HMAC_MD5(MIC Key, 16, 802.1x data)
Run Code Online (Sandbox Code Playgroud)

这是相关的代码:

mic = hmac.new(ptk[0:16],data)
print "mic: " + mic.hexdigest()  + "\n"
Run Code Online (Sandbox Code Playgroud)

从hmac库获取hmac.new的位置:

import hmac,hashlib,binascii
Run Code Online (Sandbox Code Playgroud)

显然,用于加密的密钥包括成对的Transcient密钥的前16个字节(即所谓的密钥确认密钥)。PTK由名为cowPatty的程序确认。因此,我可以排除这两个因素是错误的。这是我的802.1x数据,由十六进制值0103引入:

01030077fe010a001000000000000000
01ae11df37f5fb100665ce0c849f5950
c0e7901da3224ddfc9e9434babad5512
73000000000000000000000000000000
00000000000000000000000000000000
00e8b4b90bfc3fd97b657afeb66262ae
940018dd160050f20101000050f20201
000050f20401000050f202
Run Code Online (Sandbox Code Playgroud)

Wireshark计算的MIC为:

e8b4b90bfc3fd97b657afeb66262ae94
Run Code Online (Sandbox Code Playgroud)

我计算的MIC为:

5492624bb538b52d6aa6261c692bd595
Run Code Online (Sandbox Code Playgroud)

不幸的是,我做什么都不重要,我永远无法计算相同的MIC。也许有些专家提供了宝贵的意见,我们将不胜感激!

最好的祝福!

python encryption wireless wireshark wpa

3
推荐指数
1
解决办法
3097
查看次数

postgresql与jdbc和存储过程(函数):ResultSet

我只是试图从服务器(getStat)调用存储的函数,看起来像这样:

create type stat as (type text, location text, number int);
create function getStat() returns setof stat as 'select distinct table1.type, table1.location, table1.number from table1, table2 where table2.finding=10 order by number desc;' language 'sql';
Run Code Online (Sandbox Code Playgroud)

现在这里是jdbc代码:

CallableStatement callable = null;

    String storedProc = "{call getStat(?, ?, ?)}";

    try {
        callable = connection.prepareCall(storedProc);

        callable.registerOutParameter(1, java.sql.Types.VARCHAR);
        callable.registerOutParameter(2, java.sql.Types.VARCHAR);
        callable.registerOutParameter(3, java.sql.Types.INTEGER);

        boolean results = callable.execute();

        System.out.println(callable.getString(1));
        System.out.println(callable.getString(2));
        System.out.println(callable.getInt(3));

        while(results){
            ResultSet rs = callable.getResultSet();
            while(rs.next()){
                System.out.println(rs.getString(1));
                System.out.println(rs.getString(2));
                System.out.println(rs.getInt(3));
            }
            //rs.close();

            results = callable.getMoreResults();
        }
Run Code Online (Sandbox Code Playgroud)

好的,现在问题是:当我调用它时,它只打印出整个批量的第一行,它应该是打印的.是的,这很清楚,因为我执行以下代码: …

stored-procedures jdbc stored-functions psql

2
推荐指数
1
解决办法
4481
查看次数