Jasypt: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
 
(27 intermediate revisions by the same user not shown)
Line 27: Line 27:
</dependency>
</dependency>
</source>
</source>
|}
==Encryption==
===Jasypt===
<source lang="bash" highlight="4-6">
wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
password=secret_password \
input=sadaqah!
</source>
<source lang="bash" highlight="4-6">
wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
password=secret_password \
input=D5pJ1JQ+v+I+AYS7BARBnOcKQudi2r1g4qgobdOjT8dogcldMvRPPLAVQx3zddS/
</source>
----
<source lang="bash" highlight="4-6">
wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA1ANDAES_128 \
password=secret_password \
input=sadaqah!
</source>
<source lang="bash" highlight="4-6">
wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA1ANDAES_128 \
password=secret_password \
input=lC6Z9mpaX8iIS9/SEKIQzuEMbxd58pBWBksuARklDHXyspf3Hg1AqyyMWEd9StMa
</source>
===Apache Camel Jasypt===
<source lang="bash" highlight="4,5">
wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c encrypt -p secret_password \
-i sadaqah!
</source>
<source lang="bash" highlight="4,5">
wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c decrypt -p secret_password \
-i BVT6gDNautctO6xPvKrHgU3EAlsbDbnU
</source>
----
<source lang="bash" highlight="4-6">
wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c encrypt -a PBEWithMD5AndDES \
-p secret_password \
-i sadaqah!
</source>
<source lang="bash" highlight="4-6">
wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c decrypt -a PBEWithMD5AndDES \
-p secret_password \
-i YCYR4yln0xh8E5a1XA+GR+ZtLiLsAx41
</source>
==Playground==
{|
| valign="top" |
mkdir -p ~/Documents/jasypt-playground
cd      ~/Documents/jasypt-playground
| valign="top" |
sudo apt install openjdk-8-jdk
sudo update-alternatives --config java
|-
| colspan="2" |
----
|-
| valign="top" colspan="2" |
<source lang="bash">
wget -cq https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar\
-P ~/Documents/jasypt-playground/
</source>
|-
| colspan="2" |
----
|-
| valign="top" |
<source lang="bash">
alias jasypt_encrypt="$(cat <<EOF
java -cp ${HOME}/Documents/jasypt-playground/jasypt-1.9.3.jar \
org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
verbose=false
EOF
)"
</source>
| valign="top" |
<source lang="bash">
alias jasypt_decrypt="$(cat <<EOF
java -cp ${HOME}/Documents/jasypt-playground/jasypt-1.9.3.jar \
org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
verbose=false
EOF
)"
</source>
|-
| colspan="2" |
----
|-
| valign="top" |
<source lang="bash">
jasypt_encrypt password=secret_password\
input=sadaqah!
</source>
| valign="top" |
<source lang="bash">
jasypt_decrypt password=secret_password\
input=3afnDdXwer1GW5EjO/SH9/oYIKgBOHO6NapsiuD+l8Wm/zOey20Dis5evl86A5AM
</source>
|-
| colspan="2" |
----
|-
| valign="top" |
<source lang="bash">
echo "ENC($(jasypt_encrypt password='secret_password' input='sadaqah!'))"
</source>
| valign="top" |
<source lang="bash">
rm -rf ~/Documents/jasypt-playground/jasypt-*
</source>
|}
|}


==References==
==References==
{|
| valign="top" |
* [https://medium.com/@success4stan/data-encryption-on-spring-boot-application-properties-file-bf6ecb644bfe Spring Boot Config Properties Encryption]
* [https://medium.com/@success4stan/data-encryption-on-spring-boot-application-properties-file-bf6ecb644bfe Spring Boot Config Properties Encryption]
* [https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter Maven Repo: Jasypt Spring Boot Starter]
* [https://mvnrepository.com/artifact/com.github.ulisesbocchio/jasypt-spring-boot-starter Maven Repo: Jasypt Spring Boot Starter]
* [https://camel.apache.org/download/ Download Jasypt Camel Components]
* [https://mvnrepository.com/artifact/org.apache.camel/camel-jasypt Maven Repo: Apache Camel Jasypt]
* [http://www.jasypt.org/ Jasypt: Java Simplified Encryption]
* [http://www.jasypt.org/ Jasypt: Java Simplified Encryption]
* [https://medium.com/@surabhijaiswal/using-jasypt-with-spring-boot-9cfabfa747e4 Using Jasypt with Spring boot]
* [https://medium.com/@surabhijaiswal/using-jasypt-with-spring-boot-9cfabfa747e4 Using Jasypt with Spring boot]
* [https://downloads.apache.org/ Apache Distribution Directory]
* [https://camel.apache.org/components/latest/others/jasypt.html Jasypt Camel Components]
* [https://camel.apache.org/releases/#camel Apache Camel Releases]
* [https://mvnrepository.com/artifact/org.jasypt/jasypt Maven Repo: Jasypt]
* [https://mvnrepository.com/artifact/org.jasypt/jasypt Maven Repo: Jasypt]
| valign="top" |
* [https://medium.com/@javatechie/spring-boot-password-encryption-using-jasypt-e92eed7343ab Spring Boot Password Encryption using Jasypt]
* [https://github.com/jasypt/jasypt/blob/jasypt-1.9.3/jasypt/src/main/java/org/jasypt/intf/cli/JasyptPBEStringDecryptionCLI.java Jasypt » <code>JasyptPBEStringDecryptionCLI</code>]
* [https://github.com/jasypt/jasypt/blob/jasypt-1.9.3/jasypt/src/main/java/org/jasypt/intf/cli/JasyptPBEStringEncryptionCLI.java Jasypt » <code>JasyptPBEStringEncryptionCLI</code>]
* [https://github.com/ulisesbocchio/jasypt-spring-boot Jasypt » <code>jasypt-spring-boot</code>]
* [https://danielblancocuadrado.medium.com/how-to-encrypt-properties-with-jasypt-7c9896f74260 Encrypt properties with Jasypt]
* [https://github.com/jasypt/jasypt/blob/jasypt-1.9.3/jasypt/src/main/java/org/jasypt/intf/cli/ArgumentNaming.java Jasypt » <code>ArgumentNaming</code>]
* [https://downloads.apache.org/camel/apache-camel/ Apache Camel Source Code]
* [https://github.com/jasypt/jasypt Jasypt » SCM » GitHub]
* [http://www.jasypt.org/general-usage.html Jasypt » Algorithm]
* [[Apache Camel]]
| valign="top" |
* [https://github.com/jasypt/jasypt/blob/jasypt-1.9.3/jasypt/src/main/java/org/jasypt/intf/cli/JasyptStringDigestCLI.java Jasypt » <code>JasyptStringDigestCLI</code>]
* [https://github.com/jasypt/jasypt/blob/jasypt-1.9.3/jasypt/src/main/java/org/jasypt/intf/cli/CLIUtils.java Jasypt » <code>CLIUtils</code>]
|-
| colspan="3" |
----
|-
| valign="top" |
| valign="top" |
| valign="top" |
|}

Latest revision as of 02:49, 30 January 2024

Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works.

  • High-security, standards-based encryption techniques, both for unidirectional and bidirectional encryption. Encrypt passwords, texts, numbers, binaries...
  • Transparent integration with Hibernate.
  • Suitable for integration into Spring-based applications and also transparently integrable with Spring Security.
  • Integrated capabilities for encrypting the configuration of applications (i.e. datasources).
  • Specific features for high-performance encryption in multi-processor/multi-core systems.
  • Open API for use with any JCE provider.

Dependencies

<dependency>
    <groupId>org.jasypt</groupId>
    <artifactId>jasypt</artifactId>
    <version>1.9.3</version>
</dependency>
<dependency>
    <groupId>com.github.ulisesbocchio</groupId>
    <artifactId>jasypt-spring-boot</artifactId>
    <version>3.0.3</version>
</dependency>

Encryption

Jasypt

wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
password=secret_password \
input=sadaqah!
wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
password=secret_password \
input=D5pJ1JQ+v+I+AYS7BARBnOcKQudi2r1g4qgobdOjT8dogcldMvRPPLAVQx3zddS/

wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA1ANDAES_128 \
password=secret_password \
input=sadaqah!
wget https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar
java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA1ANDAES_128 \
password=secret_password \
input=lC6Z9mpaX8iIS9/SEKIQzuEMbxd58pBWBksuARklDHXyspf3Hg1AqyyMWEd9StMa

Apache Camel Jasypt

wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c encrypt -p secret_password \
-i sadaqah!
wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c decrypt -p secret_password \
-i BVT6gDNautctO6xPvKrHgU3EAlsbDbnU

wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c encrypt -a PBEWithMD5AndDES \
-p secret_password \
-i sadaqah!
wget https://cdn.chorke.org/soft/comn/apache/camel/apache-camel-2.15.6.tar.gz;\
tar -xzvf apache-camel-2.15.6.tar.gz; cd apache-camel-2.15.6/lib/;\
java -jar camel-jasypt-2.15.6.jar \
-c decrypt -a PBEWithMD5AndDES \
-p secret_password \
-i YCYR4yln0xh8E5a1XA+GR+ZtLiLsAx41

Playground

mkdir -p ~/Documents/jasypt-playground
cd       ~/Documents/jasypt-playground
sudo apt install openjdk-8-jdk
sudo update-alternatives --config java

wget -cq https://repo1.maven.org/maven2/org/jasypt/jasypt/1.9.3/jasypt-1.9.3.jar\
 -P ~/Documents/jasypt-playground/

alias jasypt_encrypt="$(cat <<EOF
java -cp ${HOME}/Documents/jasypt-playground/jasypt-1.9.3.jar \
org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
verbose=false
EOF
)"
alias jasypt_decrypt="$(cat <<EOF
java -cp ${HOME}/Documents/jasypt-playground/jasypt-1.9.3.jar \
org.jasypt.intf.cli.JasyptPBEStringDecryptionCLI \
ivGeneratorClassName=org.jasypt.iv.RandomIvGenerator \
algorithm=PBEWITHHMACSHA512ANDAES_256 \
verbose=false
EOF
)"

jasypt_encrypt password=secret_password\
 input=sadaqah!
jasypt_decrypt password=secret_password\
 input=3afnDdXwer1GW5EjO/SH9/oYIKgBOHO6NapsiuD+l8Wm/zOey20Dis5evl86A5AM

echo "ENC($(jasypt_encrypt password='secret_password' input='sadaqah!'))"
rm -rf ~/Documents/jasypt-playground/jasypt-*

References