diff --git a/README.md b/README.md
index 687cfd3800b99b865fb8c93a10e577b4e8c38aa3..f98e8b340837f3b8b4658e322145835cf6aa814f 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,6 @@ This library is used by two clients:
 ## Requirements
 - Python >= 3.5.3
 - [aiohttp >= 3.6.1](https://pypi.org/pypi/aiohttp)
-- [pylibscrypt](https://pypi.org/pypi/pylibscrypt)
 - [libnacl](https://pypi.org/pypi/libnacl)
 - [base58](https://pypi.org/pypi/base58)
 - [attr](https://pypi.org/project/attr/)
diff --git a/duniterpy/key/encryption_key.py b/duniterpy/key/encryption_key.py
index 509b63f4d807436e9507bb2874a352f6615bc3f9..360f48899f4f32f8718a2c6889e1676cbc770809 100644
--- a/duniterpy/key/encryption_key.py
+++ b/duniterpy/key/encryption_key.py
@@ -6,7 +6,7 @@ duniter public and private keys
 from typing import Union, Optional
 
 import libnacl.public
-from pylibscrypt import scrypt
+from hashlib import scrypt
 
 from .scrypt_params import ScryptParams
 from .base58 import Base58Encoder
@@ -38,11 +38,11 @@ class SecretKey(libnacl.public.SecretKey):
         password = ensure_bytes(password)
         seed = scrypt(
             password,
-            salt,
-            scrypt_params.N,
-            scrypt_params.r,
-            scrypt_params.p,
-            scrypt_params.seed_length,
+            salt=salt,
+            n=scrypt_params.N,
+            r=scrypt_params.r,
+            p=scrypt_params.p,
+            dklen=scrypt_params.seed_length,
         )
 
         super().__init__(seed)
diff --git a/duniterpy/key/signing_key.py b/duniterpy/key/signing_key.py
index 25324e74c7396b476390a5ac9438e09640b0d81f..fd1fdb7d9af3fad7801b004cf7b995f106ba1e22 100644
--- a/duniterpy/key/signing_key.py
+++ b/duniterpy/key/signing_key.py
@@ -10,7 +10,7 @@ from typing import Optional, Union, TypeVar, Type
 import libnacl.sign
 import pyaes
 from libnacl.utils import load_key
-from pylibscrypt import scrypt
+from hashlib import scrypt
 
 from .scrypt_params import ScryptParams
 from .base58 import Base58Encoder
@@ -56,11 +56,11 @@ class SigningKey(libnacl.sign.Signer):
         password = ensure_bytes(password)
         seed = scrypt(
             password,
-            salt,
-            scrypt_params.N,
-            scrypt_params.r,
-            scrypt_params.p,
-            scrypt_params.seed_length,
+            salt=salt,
+            n=scrypt_params.N,
+            r=scrypt_params.r,
+            p=scrypt_params.p,
+            dklen=scrypt_params.seed_length,
         )
 
         return cls(seed)
@@ -394,7 +394,7 @@ Data: {data}""".format(
 
         # SCRYPT
         password_bytes = password.encode("utf-8")
-        scrypt_seed = scrypt(password_bytes, salt, 16384, 8, 8, 64)
+        scrypt_seed = scrypt(password_bytes, salt=salt, n=16384, r=8, p=8, dklen=64)
         derivedhalf1 = scrypt_seed[0:32]
         derivedhalf2 = scrypt_seed[32:64]
 
@@ -435,7 +435,7 @@ Data: {data}""".format(
 
         # SCRYPT
         password_bytes = password.encode("utf-8")
-        scrypt_seed = scrypt(password_bytes, salt, 16384, 8, 8, 64)
+        scrypt_seed = scrypt(password_bytes, salt=salt, n=16384, r=8, p=8, dklen=64)
         derivedhalf1 = scrypt_seed[0:32]
         derivedhalf2 = scrypt_seed[32:64]
 
diff --git a/pyproject.toml b/pyproject.toml
index 257b8ad19007aecb9e951309e5ed91348f35f9b4..a78365310496a71e7093f7d0d44f2ab8116b3b7f 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -30,7 +30,6 @@ jsonschema = "^3.0.2"
 pypeg2 = "^2.15.2"
 attrs = "^19.3.0"
 base58 = "^2.0.0"
-pylibscrypt = "^1.8.0"
 libnacl = "^1.6.1"
 pyaes = "^1.6.1"