XIPHER ist eine kuratierte Sammlung kryptografischer Primitiven, die zusammengestellt werden, um eine asymmetrische Verschlüsselung der Schlüssel-/Kennwortbasis durchzuführen.
Laden Sie die neueste Binärdehnung von der Seite "Releases" herunter und fügen Sie es Ihrem Pfad hinzu.
Xipher kann mit dem Gebräu mit dem folgenden Befehl auf macOS installiert werden
brew install shibme/tap/xipherMit Shell (macOS/Linux):
curl -fsSL https://dev.shib.me/xipher/install/install.sh | shMit PowerShell (Windows):
irm https: // dev.shib.me / xipher / install / install.ps1 | iexMit Shell (macOS/Linux):
curl -fsSL https://dev.shib.me/xipher/install/install.sh | sh -s v1.1.0Mit PowerShell (Windows):
$v = " 1.1.0 " ; irm https: // dev.shib.me / xipher / install / install.ps1 | iexSie können auch Xipher ausführen, ohne mit Docker zu installieren:
docker run --rm -v $PWD :/data -it shibme/xipher help Eine Weboberfläche, die mit der CLI interoperabel ist, die mit der Web -Assembly implementiert ist, finden Sie hier.
Das folgende Sequenzdiagramm zeigt den Workflow der Web -App.
sequenzieren
Teilnehmer RX als Xipher <br> (auf dem Browser)
Schauspielerempfänger
Schauspieler -Absender
Teilnehmer SX als Xipher <br> (auf dem Browser)
Empfänger->>+RX: Öffnet die Xipher-App im Browser
RX->> RX: Erzeugt ein Schlüsselpaar und speichert es im lokalen Speicher des Browsers
RX->>-Empfänger: Gibt den öffentlichen Schlüssel <br> zurück (als URL, die gemeinsam genutzt werden kann)
Empfänger->>+Absender: teilt die Verschlüsselungs-URL <br> (dies enthält den öffentlichen Schlüssel als Parameter)
Absender->>+SX: Öffnet die öffentliche Verschlüsselungs-URL <br> (öffnet die Xipher-Verschlüsselungs-Webseite)
Absender->> SX: Eingibt die Daten, die verschlüsselt werden müssen
SX->> SX: Verschlüsselt die Daten mit dem öffentlichen Schlüssel aus der URL
SX->>-Absender: Gibt den Ciphertext zurück, der mit dem öffentlichen Schlüssel verschlüsselt ist
Absender->>-Empfänger: Sendet den verschlüsselten Chiffretext an den Empfänger
Empfänger->>+RX: Eingibt den Ciphertext <br> (auf der Decyrption-Seite)
RX->> RX: Entschlüsselt der Chiffretext <br> (mit dem geheimen Schlüssel aus dem lokalen Speicher)
RX->>-Empfänger: Rücksendungen entschlüsselte Daten zurück
Installieren Sie das Paket
go get -u dev.shib.me/xipherVerwenden Sie es in Ihrem Code
package main
import (
"encoding/base32"
"fmt"
"dev.shib.me/xipher"
)
func main () {
// Creating a new secret key for password
scrtKey , err := xipher . NewSecretKeyForPassword ([] byte ( "Paws0meKittyKuwan!" ))
if err != nil {
panic ( err )
}
// Deriving public key from secret key
pubKey , err := scrtKey . PublicKey ( false )
if err != nil {
panic ( err )
}
publicKeyBytes , err := pubKey . Bytes ()
if err != nil {
panic ( err )
}
fmt . Println ( "PublicKey:" , base32 . StdEncoding . WithPadding ( base32 . NoPadding ). EncodeToString ( publicKeyBytes ))
platinText := [] byte ( "Hello World!" )
// Encrypting plain text with public key
cipherText , err := pubKey . Encrypt ( platinText , true )
if err != nil {
panic ( err )
}
fmt . Println ( "Encrypted:" , base32 . StdEncoding . WithPadding ( base32 . NoPadding ). EncodeToString ( cipherText ))
// Decrypting cipher text with secret key
plainText , err := scrtKey . Decrypt ( cipherText )
if err != nil {
panic ( err )
}
fmt . Println ( "Decrypted:" , string ( plainText ))
}Folgen Sie dem folgenden Beispiel, um das XIPHER -Modul in einer Browser -App als Web Assembly -Modul (WASM) zu verwenden.
< html >
< head >
< meta charset =" utf-8 " />
< script src =" https://dev.shib.me/xipher/wasm/wasm_exec.js " > </ script >
< script >
const go = new Go ( ) ;
WebAssembly . instantiateStreaming ( fetch ( "https://dev.shib.me/xipher/wasm/xipher.wasm" ) , go . importObject ) . then ( ( result ) => {
go . run ( result . instance ) ;
} ) ;
</ script >
</ head >
< body >
Call wasm methods that begin with xipher. For example: xipherNewSecretKey()
</ body >
</ html > Xipher verwendet die folgenden Algorithmen und Bibliotheken, um seine Funktionalität zu erreichen:
Das folgende Sequenzdiagramm veranschaulicht den Workflow von XIPHER in der Verschlüsselung von Daten mithilfe eines passwortbasierten öffentlichen Schlüssels.
sequenzieren
Teilnehmer RX als Xipher
Schauspielerempfänger
Schauspieler -Absender
Teilnehmer SX als Xipher
Empfänger->>+RX: Öffentlich abgeleiten (Eingabetwort)
RX->>-Empfänger: Gibt den öffentlichen Schlüssel zurück
Empfänger->> Absender: teilt den öffentlichen Schlüssel mit
Absender->>+SX: Verschlüsseln Sie Daten mit öffentlichem Schlüssel
SX->>-Absender: Gibt den Ciphertext zurück, der mit öffentlichem Schlüssel verschlüsselt ist
Absender->> Empfänger: Sendet den verschlüsselten Chiffretext an den Empfänger
Empfänger->>+RX: Entschlüsseln Sie Daten (Eingaben Ciphertext und Kennwort)
RX->>-Empfänger: Rücksendungen entschlüsselte Daten zurück
Dieses Tool/diese Bibliothek wird ohne Gewährleistungen bereitgestellt, und es gibt keine Garantie für seine Stabilität. Aufgrund der experimentellen Natur einiger seiner Komponenten wird erwartet, dass Änderungen an Code, Repository und API in Zukunft vorgenommen werden. Vorsicht wird empfohlen, bevor dies in eine Produktionsanwendung einbezogen wird. Bitte melden Sie alle identifizierten Sicherheitsprobleme umgehend. Ihre Zusammenarbeit bei der Benachrichtigung über solche Bedenken wird sehr geschätzt.