Add python version
This commit is contained in:
parent
4a8159a3a5
commit
01b2ca524d
1 changed files with 38 additions and 0 deletions
38
python-version/main.py
Executable file
38
python-version/main.py
Executable file
|
|
@ -0,0 +1,38 @@
|
|||
#!/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!")
|
||||
Loading…
Add table
Reference in a new issue