Files
augment-lib-augment-ComfyUI/py/crypto.py
T

110 lines
2.7 KiB
Python

# "Design-focused node suite for ComfyUI."
# Copyright 2026 Augment Studio
# Augmentstudio.app
import hashlib
import secrets
import time
import json
class SHA256Node:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {
"encode": ("STRING", {"forceInput": True}),
},
"optional": {
"trigger": ("TRIGGER",),
},
}
RETURN_TYPES = ("STRING", "AUGMENT_JSON", "TRIGGER")
RETURN_NAMES = ("hash", "json", "trigger")
FUNCTION = "execute"
CATEGORY = "Augment/Utils"
OUTPUT_NODE = True
@classmethod
def VALIDATE_INPUTS(cls, **kwargs):
return True
def execute(self, encode, trigger=None):
h = hashlib.sha256(encode.encode("utf-8")).hexdigest()
json_result = json.dumps({"node": "SHA-256 Hash", "input": encode, "hash": h, "algorithm": "sha256"})
return {"ui": {"text": [h]}, "result": (h, json_result, "done")}
class RandomNumberNode:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {},
"optional": {
"trigger": ("TRIGGER",),
},
}
RETURN_TYPES = ("INT", "AUGMENT_JSON", "TRIGGER")
RETURN_NAMES = ("number", "json", "trigger")
FUNCTION = "execute"
CATEGORY = "Augment/Utils"
OUTPUT_NODE = True
@classmethod
def VALIDATE_INPUTS(cls, **kwargs):
return True
@classmethod
def IS_CHANGED(cls, **kwargs):
return time.time()
def execute(self, trigger=None):
n = secrets.randbelow(1000000000)
json_result = json.dumps({"node": "Random Number", "number": n, "max": 1000000000})
return {"ui": {"text": [str(n)]}, "result": (n, json_result, "done")}
class UUIDNode:
@classmethod
def INPUT_TYPES(cls):
return {
"required": {},
"optional": {
"trigger": ("TRIGGER",),
},
}
RETURN_TYPES = ("STRING", "AUGMENT_JSON", "TRIGGER")
RETURN_NAMES = ("uuid", "json", "trigger")
FUNCTION = "execute"
CATEGORY = "Augment/Utils"
OUTPUT_NODE = True
@classmethod
def VALIDATE_INPUTS(cls, **kwargs):
return True
@classmethod
def IS_CHANGED(cls, **kwargs):
return time.time()
def execute(self, trigger=None):
u = secrets.token_hex(16)
json_result = json.dumps({"node": "UUID Generator", "uuid": u, "length": 32})
return {"ui": {"text": [u]}, "result": (u, json_result, "done")}
NODE_CLASS_MAPPINGS = {
"SHA256Node": SHA256Node,
"RandomNumberNode": RandomNumberNode,
"UUIDNode": UUIDNode,
}
NODE_DISPLAY_NAME_MAPPINGS = {
"SHA256Node": "SHA-256 Hash",
"RandomNumberNode": "Random Number",
"UUIDNode": "UUID Generator",
}