Skip to content

Commit

Permalink
Add sha256 operator
Browse files Browse the repository at this point in the history
  • Loading branch information
Jermolene committed Jan 29, 2022
1 parent 75d10a2 commit 1a0c831
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
27 changes: 27 additions & 0 deletions core/modules/filters/crypto.js
@@ -0,0 +1,27 @@
/*\
title: $:/core/modules/filters/crypto.js
type: application/javascript
module-type: filteroperator
Filter operators for cryptography, using the Stanford JavaScript library
\*/
(function(){

/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";

exports.sha256 = function(source,operator,options) {
var results = [],
length = parseInt(operator.operand,10) || 20,
sha256 = function(text) {
return sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(text)).substr(0,length);
};
source(function(tiddler,title) {
results.push(sha256(title));
});
return results;
};

})();
18 changes: 18 additions & 0 deletions editions/tw5.com/tiddlers/filters/sha256 Operator.tid
@@ -0,0 +1,18 @@
caption: sha256
created: 20220129105504961
modified: 20220129105504961
op-input: a [[selection of titles|Title Selection]]
op-output: the base64 encoded sha256 of the input, truncated to the specified length
op-parameter: the number of characters to return, up to a maximum of 64
op-parameter-name: L
op-purpose: apply sha256 hash to a string
tags: [[Filter Operators]] [[String Operators]]
title: sha256 Operator
type: text/vnd.tiddlywiki
from-version: 5.1.14

Hashes are a way of turning strings of arbitrary length into obfuscated strings of fixed length. They are often used in situations where items need to be stored by name but it is inconvenient to allow arbitrary length strings.

See Wikipedia for details of the [[sha256|https://en.wikipedia.org/wiki/SHA-2]] operation.

<<.operator-examples "sha256">>

0 comments on commit 1a0c831

Please sign in to comment.