node-red-contrib-bcrypt
v0.1.6
Published
Bcrypt.js for node-red
Downloads
326
Maintainers
Readme
node-red-contrib-bcrypt
introduction
A node that can be used for encrypting user passwords
Features
- encrypt/hash
- verify
Uses bcrypt.js
Options
field: field to encrypt or to verify against (string) *
verify: field to verify (hash) *
The field specified will be replaced with the encrypted version if the action is set to encrypt.
Outputs
msg.match
will be either true or false
Example Flow to demonstrate Encrypt and Verify - Copy and Import in Node-Red to test
[
{
"id": "44cb1ec64f0c78d1",
"type": "bcrypt",
"z": "d9738de9e7b466e0",
"name": "",
"action": "encrypt",
"field": "payload",
"hash": "payload",
"target": "",
"assignment": "replace",
"match": "match",
"outputs": 1,
"rounds": "10",
"x": 250,
"y": 260,
"wires": [
[
"cd5ed81131b0f293"
]
]
},
{
"id": "ba38225ef5691ed6",
"type": "inject",
"z": "d9738de9e7b466e0",
"name": "",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "6",
"payloadType": "num",
"x": 130,
"y": 260,
"wires": [
[
"44cb1ec64f0c78d1"
]
]
},
{
"id": "cd5ed81131b0f293",
"type": "debug",
"z": "d9738de9e7b466e0",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 390,
"y": 260,
"wires": []
},
{
"id": "69d161daec8d0273",
"type": "bcrypt",
"z": "d9738de9e7b466e0",
"name": "",
"action": "verify",
"field": "payload",
"hash": "hash",
"assignment": "replace",
"match": "isGood",
"outputs": 2,
"rounds": 10,
"x": 260,
"y": 560,
"wires": [
[
"8ae20e590a01fd25"
],
[
"15cba0e8d11eda76"
]
]
},
{
"id": "aef0ed34375d92bd",
"type": "inject",
"z": "d9738de9e7b466e0",
"name": "Good",
"props": [
{
"p": "payload"
},
{
"p": "hash",
"v": "$2a$10$1HDtq5vldsTmNlacSgzs0e/nvtpFct0KoP63nlPWzpKnKcKgAcfwS",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "6",
"payloadType": "num",
"x": 130,
"y": 540,
"wires": [
[
"69d161daec8d0273"
]
]
},
{
"id": "8ae20e590a01fd25",
"type": "debug",
"z": "d9738de9e7b466e0",
"name": "good",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "isGood",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 390,
"y": 540,
"wires": []
},
{
"id": "15cba0e8d11eda76",
"type": "debug",
"z": "d9738de9e7b466e0",
"name": "bad",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "isGood",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 390,
"y": 580,
"wires": []
},
{
"id": "ffc4409f7cb3f6ba",
"type": "inject",
"z": "d9738de9e7b466e0",
"name": "Bad",
"props": [
{
"p": "payload"
},
{
"p": "hash",
"v": "$2a$10$1HDtq5vldsTmNlacSgzs0e/nvtpFct0KoP63nlPWzpKnKcKgAcfwS",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "7",
"payloadType": "num",
"x": 130,
"y": 580,
"wires": [
[
"69d161daec8d0273"
]
]
},
{
"id": "bbe0dced4cdd0e52",
"type": "bcrypt",
"z": "d9738de9e7b466e0",
"name": "",
"action": "verify",
"field": "payload",
"hash": "hash",
"target": "",
"assignment": "replace",
"match": "isGood",
"outputs": 1,
"rounds": 10,
"x": 260,
"y": 400,
"wires": [
[
"927a9666a84b65ef"
]
]
},
{
"id": "619be956afc9797c",
"type": "inject",
"z": "d9738de9e7b466e0",
"name": "Good",
"props": [
{
"p": "payload"
},
{
"p": "hash",
"v": "$2a$10$1HDtq5vldsTmNlacSgzs0e/nvtpFct0KoP63nlPWzpKnKcKgAcfwS",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "6",
"payloadType": "num",
"x": 130,
"y": 380,
"wires": [
[
"bbe0dced4cdd0e52"
]
]
},
{
"id": "927a9666a84b65ef",
"type": "debug",
"z": "d9738de9e7b466e0",
"name": "GOOD OR BAD",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "isGood",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 420,
"y": 400,
"wires": []
},
{
"id": "bd512b7da17fdc6f",
"type": "inject",
"z": "d9738de9e7b466e0",
"name": "Bad",
"props": [
{
"p": "payload"
},
{
"p": "hash",
"v": "$2a$10$1HDtq5vldsTmNlacSgzs0e/nvtpFct0KoP63nlPWzpKnKcKgAcfwS",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "7",
"payloadType": "num",
"x": 130,
"y": 420,
"wires": [
[
"bbe0dced4cdd0e52"
]
]
},
{
"id": "9d7d14ceb6ad6c7d",
"type": "bcrypt",
"z": "d9738de9e7b466e0",
"name": "",
"action": "encrypt",
"field": "payload",
"hash": "payload",
"target": "hash",
"assignment": "assign",
"match": "match",
"outputs": 1,
"rounds": "10",
"x": 250,
"y": 700,
"wires": [
[
"d5fbfbeed27b8cf3"
]
]
},
{
"id": "9d85d81f3dd45ef1",
"type": "inject",
"z": "d9738de9e7b466e0",
"name": "good",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "6",
"payloadType": "num",
"x": 130,
"y": 700,
"wires": [
[
"9d7d14ceb6ad6c7d"
]
]
},
{
"id": "d5fbfbeed27b8cf3",
"type": "bcrypt",
"z": "d9738de9e7b466e0",
"name": "",
"action": "verify",
"field": "payload",
"hash": "hash",
"target": "",
"assignment": "replace",
"match": "isGood",
"outputs": 1,
"rounds": 10,
"x": 380,
"y": 700,
"wires": [
[
"33375c74cb0b827b"
]
]
},
{
"id": "33375c74cb0b827b",
"type": "debug",
"z": "d9738de9e7b466e0",
"name": "good",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "isGood",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 510,
"y": 700,
"wires": []
},
{
"id": "465fdbece6b334f3",
"type": "bcrypt",
"z": "d9738de9e7b466e0",
"name": "",
"action": "verify",
"field": "payload",
"hash": "hashz",
"target": "",
"assignment": "replace",
"match": "isGood",
"outputs": 1,
"rounds": 10,
"x": 380,
"y": 740,
"wires": [
[
"b1af859833029bb1"
]
]
},
{
"id": "484a0c96cde5eb67",
"type": "bcrypt",
"z": "d9738de9e7b466e0",
"name": "",
"action": "encrypt",
"field": "payload",
"hash": "payload",
"target": "hash",
"assignment": "assign",
"match": "match",
"outputs": 1,
"rounds": "10",
"x": 250,
"y": 740,
"wires": [
[
"465fdbece6b334f3"
]
]
},
{
"id": "b1af859833029bb1",
"type": "debug",
"z": "d9738de9e7b466e0",
"name": "bad",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "isGood",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 510,
"y": 740,
"wires": []
},
{
"id": "4f160fe2dae79fc3",
"type": "inject",
"z": "d9738de9e7b466e0",
"name": "bad",
"props": [
{
"p": "payload"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "6",
"payloadType": "num",
"x": 130,
"y": 740,
"wires": [
[
"484a0c96cde5eb67"
]
]
},
{
"id": "f09cabed71250e79",
"type": "comment",
"z": "d9738de9e7b466e0",
"name": "Hash msg.payload and replace field with hash",
"info": "",
"x": 220,
"y": 220,
"wires": []
},
{
"id": "b4decbdcd72d45fb",
"type": "comment",
"z": "d9738de9e7b466e0",
"name": "Compare msg.hash against msg.payload and assign result to msg.isGood",
"info": "",
"x": 320,
"y": 340,
"wires": []
},
{
"id": "c6434dd000580917",
"type": "comment",
"z": "d9738de9e7b466e0",
"name": "Compare msg.hash against msg.payload and assign result to msg.isGood using seperate output",
"info": "",
"x": 390,
"y": 500,
"wires": []
},
{
"id": "14194bdc85dc316a",
"type": "comment",
"z": "d9738de9e7b466e0",
"name": "Other",
"info": "",
"x": 110,
"y": 660,
"wires": []
}
]