diff --git a/tests/integration/Gemfile b/tests/integration/Gemfile
index 5cfd9d5c96861bee5443b1b5e61891143cd66bbe..3bbffdf95eb4d8b721279eb6cf6e6b0c23ff4cb5 100644
--- a/tests/integration/Gemfile
+++ b/tests/integration/Gemfile
@@ -5,6 +5,7 @@ gem "faker"
 gem "faye-websocket"
 gem "mimemagic"
 gem "minitest"
+gem "pbkdf2-ruby"
 gem "pry"
 gem "pry-rescue"
 gem "pry-stack_explorer"
diff --git a/tests/integration/Gemfile.lock b/tests/integration/Gemfile.lock
index ed300ae124d143df2c544d48c94c891e83612d57..9c0d200e150ddd57ff7a7bbde2484b667b7db7a7 100644
--- a/tests/integration/Gemfile.lock
+++ b/tests/integration/Gemfile.lock
@@ -27,6 +27,7 @@ GEM
     mimemagic (0.3.2)
     minitest (5.11.3)
     netrc (0.11.0)
+    pbkdf2-ruby (0.2.1)
     pry (0.11.3)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
@@ -56,10 +57,11 @@ DEPENDENCIES
   faye-websocket
   mimemagic
   minitest
+  pbkdf2-ruby
   pry
   pry-rescue
   pry-stack_explorer
   rest-client
 
 BUNDLED WITH
-   1.15.1
+   1.16.4
diff --git a/tests/integration/boot.rb b/tests/integration/boot.rb
index 6924c745ab919afaaea9bff0702e18232c3d9a4f..e7c48b955a60cff4946394bbbb99e7bc1f7b678b 100644
--- a/tests/integration/boot.rb
+++ b/tests/integration/boot.rb
@@ -5,6 +5,7 @@ require 'faker'
 require 'fileutils'
 require 'mimemagic'
 require 'json'
+require 'pbkdf2'
 require 'pry'
 require 'rest-client'
 
diff --git a/tests/integration/lib/accept.rb b/tests/integration/lib/accept.rb
index f682a4b4c04e8c2b4167b2ca16186eec37f0d666..14bad8a3f44c97a79ef4e45ea4f53d9ba4abbc2c 100644
--- a/tests/integration/lib/accept.rb
+++ b/tests/integration/lib/accept.rb
@@ -31,7 +31,7 @@ class Accept
     client = RestClient::Resource.new @inst.url
     res = client["/auth/login"].get
     csrf_token = res.cookies["_csrf"]
-    body = { csrf_token: csrf_token, passphrase: @inst.passphrase }
+    body = { csrf_token: csrf_token, passphrase: @inst.derived_passphrase }
     params = { cookies: res.cookies, accept: :json }
     res2 = client["/auth/login"].post body, params
     res2.cookies["cozysessid"]
diff --git a/tests/integration/lib/instance.rb b/tests/integration/lib/instance.rb
index 82efc36d346427825efcad82b2bf090fc0f9bdc3..ab75804344e37d174ab897256b168d359352ce65 100644
--- a/tests/integration/lib/instance.rb
+++ b/tests/integration/lib/instance.rb
@@ -72,7 +72,19 @@ class Instance
     Accept.new(sharing, sharer).on self
   end
 
+
   def fsck
     @stack.fsck self
   end
+
+  # See https://github.com/jcs/rubywarden/blob/master/API.md#example
+  def derived_passphrase
+    PBKDF2.new do |p|
+      p.password = passphrase
+      p.salt = "me@" + domain.split(':').first
+      p.iterations = 10_000 # See pkg/crypto/pbkdf2.go
+      p.hash_function = OpenSSL::Digest::SHA256
+      p.key_length = (256 / 8)
+    end.bin_string
+  end
 end