No project description provided
Project description
🛠️ Installation
From PyPI:
pip install TP-Generator
From Source:
git clone https://github.com/TPCyberSec/TP-Generator.git --branch <Branch/Tag>
cd TP-Generator
python -m build
python -m pip install dist/tp_generator-<version>-py3-none-any.whl
📘 Basic Usage
Utils
from TP_Generator import Utils
Utils.timestamp(10)
# OUTPUT: 1733597189
Utils.uuid(1)
# OUTPUT: '9daeab4b-b4cb-11ef-b79b-00a554ba203d'
Utils.RandomNumber(0, 1000)
# OUTPUT: 931
Utils.RandomString(10)
# OUTPUT: 'Wz<:1<.YSC'
Utils.toUTF8_Overlong('TPCyberSec', numBytes=2)
# OUTPUT: b'\xc1\x94\xc1\x90\xc1\x83\xc1\xb9\xc1\xa2\xc1\xa5\xc1\xb2\xc1\x93\xc1\xa5\xc1\xa3'
Utils.toUTF16('TPCyberSec')
# OUTPUT: b'T\x00P\x00C\x00y\x00b\x00e\x00r\x00S\x00e\x00c\x00'
Utils.toUTF32('TPCyberSec')
# OUTPUT: b'T\x00\x00\x00P\x00\x00\x00C\x00\x00\x00y\x00\x00\x00b\x00\x00\x00e\x00\x00\x00r\x00\x00\x00S\x00\x00\x00e\x00\x00\x00c\x00\x00\x00'
Utils.Str2Hex('TPCyberSec')
# OUTPUT: '54504379626572536563'
Utils.Hex2Str('54504379626572536563')
# OUTPUT: 'TPCyberSec'
Utils.base64Encode('TPCyberSec'.encode())
# OUTPUT: b'VFBDeWJlclNlYw=='
Utils.base64Decode('VFBDeWJlclNlYw==')
# OUTPUT: b'TPCyberSec'
Utils.base64UrlEncode('TPCyberSec'.encode())
# OUTPUT: b'VFBDeWJlclNlYw'
Utils.base64UrlDecode('VFBDeWJlclNlYw'.encode())
# OUTPUT: b'TPCyberSec'
Utils.UrlEncode('TP Cyber Security')
# OUTPUT: 'TP%20Cyber%20Security'
Utils.UrlDecode('TP%20Cyber%20Security')
# OUTPUT: 'TP Cyber Security'
Utils.HTMLEncode('TPCyberSec')
# OUTPUT: 'TPCyberSec'
Utils.HTMLEncode('TPCyberSec', type="dec")
# OUTPUT: 'TPCyberSec'
xml_string = '''<?xml version="1.0" encoding="UTF-8"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>'''
json_object = Utils.XML2JSON(xml_string)
print(json_object)
# OUTPUT: {'note': {'to': {'#text': 'Tove'}, 'from': {'#text': 'Jani'}, 'heading': {'#text': 'Reminder'}, 'body': {'#text': "Don't forget me this weekend!"}}}
xml_string = Utils.JSON2XML(json_object)
print(xml_string)
# OUTPUT: <?xml version="1.0" encoding="UTF-8"?><note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>
Generating testcases for the Sniper attack
from TP_Generator import AttackTypes
InjectionPoints = [
"RequestBody||id",
"RequestBody||name"
]
Payloads = [
[
"' AND '1'='1",
"' AND '1'='0"
]
]
for testcases in AttackTypes.Sniper(InjectionPoints, Payloads):
print(testcases)
# OUTPUT:
# {'RequestBody||id': "' AND '1'='1"}
# {'RequestBody||id': "' AND '1'='0"}
# {'RequestBody||name': "' AND '1'='1"}
# {'RequestBody||name': "' AND '1'='0"}
Generating testcases for the Batteringram attack
from TP_Generator import AttackTypes
InjectionPoints = [
"RequestBody||id",
"RequestBody||name"
]
Payloads = [
[
"' AND '1'='1",
"' AND '1'='0"
]
]
for testcases in AttackTypes.Batteringram(InjectionPoints, Payloads):
print(testcases)
# OUTPUT:
# {'RequestBody||id': "' AND '1'='1", 'RequestBody||name': "' AND '1'='1"}
# {'RequestBody||id': "' AND '1'='0", 'RequestBody||name': "' AND '1'='0"}
Generating testcases for the Pitchfork attack
from TP_Generator import AttackTypes
InjectionPoints = [
"RequestBody||id",
"RequestBody||name"
]
Payloads = [
[
"' AND '1'='1",
"' AND '1'='0"
],
[
"' OR '1'='1",
"' OR '1'='0"
]
]
for testcases in AttackTypes.Pitchfork(InjectionPoints, Payloads):
print(testcases)
# OUTPUT:
# {'RequestBody||id': "' AND '1'='1", 'RequestBody||name': "' OR '1'='1"}
# {'RequestBody||id': "' AND '1'='0", 'RequestBody||name': "' OR '1'='0"}
Generating testcases for the Clusterbomb attack
from TP_Generator import AttackTypes
InjectionPoints = [
"RequestBody||id",
"RequestBody||name"
]
Payloads = [
[
"' AND '1'='1",
"' AND '1'='0",
"' && '1'='1"
],
[
"' OR '1'='1",
"' OR '1'='0",
]
]
for testcases in AttackTypes.Clusterbomb(InjectionPoints, Payloads):
print(testcases)
# OUTPUT:
# {'RequestBody||id': "' AND '1'='1", 'RequestBody||name': "' OR '1'='1"}
# {'RequestBody||id': "' AND '1'='1", 'RequestBody||name': "' OR '1'='0"}
# {'RequestBody||id': "' AND '1'='0", 'RequestBody||name': "' OR '1'='1"}
# {'RequestBody||id': "' AND '1'='0", 'RequestBody||name': "' OR '1'='0"}
# {'RequestBody||id': "' && '1'='1", 'RequestBody||name': "' OR '1'='1"}
# {'RequestBody||id': "' && '1'='1", 'RequestBody||name': "' OR '1'='0"}
Generating the TOTP, HOTP code
from TP_Generator import MFA_Generator
print(MFA_Generator.TOTP("JBSWY3DPEHPK3PXP"))
# OUTPUT: 862642
print(MFA_Generator.HOTP("JBSWY3DPEHPK3PXP", 1))
# OUTPUT: 996554
Generating the WordPress Nonce for unauthenticated users with wp-rest action
from TP_Generator import Nonce_Generator
action = "wp-rest"
NONCE_KEY = "Y9(H0]_u8BA:^or^<^4>AM@EkgnAm`{Mpsq*H!Z-?8 OHe6ITmPY6kQSai)y3w{}"
NONCE_SALT = "xV&%-Ji<,`Clp+|bqt9<c%JrGpq!EiMy///`z0+<D1F<E%H14mha9Csm<TH;~TfH"
print(Nonce_Generator.WordPress_Nonce(nonce_action=action, WORDPRESS_NONCE_KEY=NONCE_KEY, WORDPRESS_NONCE_SALT=NONCE_SALT))
# OUTPUT: ac06630f78
(Un)parsing QR Code: VietQR (TAG 38), MoMo (TAG 38), VNPAYQR (TAG 26), KHQR_Individual (TAG 29), KHQR_Corporate (TAG 30), ThaiQR_CREDIT_TRANSFER (TAG 29), ThaiQR_BILL_PAYMENT (TAG 30)
from TP_Generator import QR_Generator
QR_String = "00020101021230340009nbcb@devb01090000001230204DEVB520459995303840540115802KH5912Coffee Klang6010Phnom Penh62300314Coffe Klang0010708A60086679917001316418876882756304CE7C"
QRObj = QR_Generator.initQR("KHQR_Corporate").parse(QR_String)
print(QRObj.dumps())
# OUTPUT: {"PayloadFormatIndicator": "01", "PointOfInitiationMethod": "12", "MerchantAccountInformation": {"BakongAccountID": "nbcb@devb", "MerchantID": "000000123", "AcquiringBank": "DEVB"}, "MerchantCategoryCode": "5999", "TransactionCurrency": "840", "TransactionAmount": "1", "CountryCode": "KH", "MerchantName": "Coffee Klang", "MerchantCity": "Phnom Penh", "AdditionalDataFieldTemplate": {"StoreLabel": "Coffe Klang001", "TerminalLabel": "A6008667"}, "CRC": "CE7C", "Timestamp": {"timestamp": "1641887688275"}}
QRObj.update("TransactionAmount", "1000")
print(QR_Generator.initQR("KHQR_Corporate").unparse(QRObj))
# OUTPUT: 00020101021230340009nbcb@devb01090000001230204DEVB520459995303840540410005802KH5912Coffee Klang6010Phnom Penh62300314Coffe Klang0010708A600866799170013164188768827563043ECD
👥 Contributors
📝 CHANGELOG
TP-Generator v2026.5.18
- New: Utils: HTMLEncode, toUTF8_Overlong
- Updated: Preserve the order of keys when parsing from XML to JSON by setting the
ordered_dictparameter toTrue
TP-Generator v2026.4.30
- New: Utils: XML2JSON, JSON2XML
TP-Generator v2026.3.29
- Updated: toUTF16, toUTF32, base64Encode, base64Decode, base64UrlEncode, base64UrlDecode functions in Utils module
TP-Generator v2025.10.7
- New: QR_Generator: ThaiQR_CREDIT_TRANSFER (
TAG 29), ThaiQR_BILL_PAYMENT (TAG 30)
TP-Generator v2025.9.10
- Fixed: base64Encode, base64Decode, base64UrlEncode, base64UrlDecode
TP-Generator v2025.1.1
- New: Utils: toUTF16, toUTF32
- New: QR_Generator: VNPAYQR (
TAG 26)
TP-Generator v2024.12.12
- New: Utils module
- New: QR_Generator: Parse/Unparse QR code types: VietQR (
TAG 38), MoMo (TAG 38), KHQR_Individual (TAG 29), KHQR_Corporate (TAG 30)
TP-Generator v2024.8.10
- Updated: AttackTypes: Sniper, Batteringram, Pitchfork, Pitchfork
- New: Nonce_Generator: Generate the WordPress Nonce
TP-Generator v2024.6.13
- Updated: MFA_Generator: Fixed error generating TOTP, HOTP from jython
TP-Generator v2024.4.5
- New: Bruteforcer_List: UUID1
TP-Generator v2024.3.3
- New: MFA_Generator: TOTP (Time-based One-Time Password) and HOTP (HMAC-based One-Time Password)
TP-Generator v2024.3.1
- New: Generate test cases for attack types: Sniper, Battering Ram, Pitchfork, Cluster Bomb
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tp_generator-2026.5.18.tar.gz
(16.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tp_generator-2026.5.18.tar.gz.
File metadata
- Download URL: tp_generator-2026.5.18.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e886f9b7c1ef9a64155590fd01e0677f1a00e314639893ac94e54f3ad31049e9
|
|
| MD5 |
344b00edc179b8b677803844f0aecffc
|
|
| BLAKE2b-256 |
97a7dfbdc779c7b5f8eec2fa6497c31ab6f1e958405634df8861c3dfea268e7d
|
File details
Details for the file tp_generator-2026.5.18-py3-none-any.whl.
File metadata
- Download URL: tp_generator-2026.5.18-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
390aceb8be58167a21a24c7ed2baea9888aa2b471a1b4e65d8b1bb254607008c
|
|
| MD5 |
d57e40896f5e9ffe86dd6fafe59005ca
|
|
| BLAKE2b-256 |
781ea4347017dba6c8722420b5f6357c3d23bb5a169d117e4259e5758e2845c4
|