每天都学一点

超微主板 IPMI 高级授权生成器 Python 实现版本

29 04月
作者:林健|分类:Python
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 超微主板 IPMI 高级授权生成器 Python 实现版本
import hmac
import binascii
import base64
import sys
import re
from hashlib import sha1
    
def hex2bin(data):
    return binascii.a2b_hex(data)

def hash_hmac(key, code, sha1):
    hmac_code = hmac.new(key, code, sha1)
    return hmac_code.hexdigest()

if __name__ == '__main__':
    if len(sys.argv) == 1 or len(sys.argv) > 2:
        print("Supermicro IPMI License Generator")
        print("https://github.com/kasuganosoras/SuperMicro-IPMI-LicenseGenerator")
        print("Argument is missing, please append your BMC-MAC after this command.")
        print("Example: " + sys.argv[0] + " 0c:c4:7a:3e:2f:de")
        exit()
    mac = sys.argv[1].replace(":", "")
    if re.match( r'^(\w+)$', mac):
        key = hash_hmac(hex2bin("8544E3B47ECA58F9583043F8"), hex2bin(mac), sha1)[0:24]
        s = 0
        result = ""
        for i in range(0, len(key)):
            s = s + 1
            result += key[i]
            if s == 4 and i != len(key) - 1:
                result += "-"
                s = 0
        print(result)
        exit()
    print("Invalid Mac Address!")
    

    浏览1 评论0
    返回
    目录
    返回
    首页
    用Python 应对特色形式主义微信打卡 python学习网站

    发表评论