<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">
Hey guys,
<div class=""><br class="">
</div>
<div class="">I will have to migrate from a custom in house user management system to keycloak.</div>
<div class="">We are using this algorithm to store salted/hashed password :</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">&nbsp; &nbsp; public static String hashPassword(String password, String salt) {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; try {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; KeySpec keySpec = new PBEKeySpec(password.toCharArray(), salt.getBytes(), 2048, 160);</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(&quot;PBKDF2WithHmacSHA1&quot;);</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; byte[] hash = secretKeyFactory.generateSecret(keySpec).getEncoded();</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return new BigInteger(1, hash).toString(16);</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; } catch (Exception x) {</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; throw new IllegalStateException(x);</div>
<div class="">&nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div class="">&nbsp; &nbsp; }</div>
<div class=""><br class="">
</div>
<div class="">I was wondering, in order to ease the migration, if I could configure keycloak to use the same hash algorithm ?</div>
<div class=""><br class="">
</div>
<div class="">Or if there was any other ways ? Like maybe a federation provider, but then comes the question when to push things into keycloak, at password change ?</div>
<div class=""><br class="">
</div>
<div class="">What do you think ?</div>
<div class=""><br class="">
</div>
<div class="">Sincerely.</div>
<div class=""><br class="Apple-interchange-newline">
<hr align="left" border-color:#40ae49;="" style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px; border: 0px; width: 320px; height: 1px; background-color: rgb(64, 174, 73);" class="">
<p class="MsoNormal" style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2; margin: 0cm 0cm 1pt;">
<br style="color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 14px; orphans: auto; widows: auto;" class="">
<span style="color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 14px; orphans: auto; widows: auto; text-transform: uppercase;" class="">REMI CARTIER</span><br style="color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; font-size: 12px; line-height: 14px; orphans: auto; widows: auto;" class="">
</p>
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">
<span style="text-align: -webkit-auto; line-height: 14px;" class=""><font color="#666666" face="Helvetica, Arial, sans-serif" class="">B.O.S.S. (Business &amp; Operation Support Systems) P.O (Product Owner)</font></span></div>
<br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<strong style="font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(64, 174, 73); font-family: Helvetica, Arial, sans-serif; line-height: 14px; text-transform: uppercase;" class="">IMETRIK
 GLOBAL INC.</strong><span style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">&nbsp;</span><br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<strong style="font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">T
 :</strong><span style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">&nbsp;&#43;1
 514 448-6407 x2009</span><br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<strong style="font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">T
 :</strong><span style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">&nbsp;&#43;1
 866 276-5382 (toll free)&nbsp;</span><br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<strong style="font-size: 12px; font-style: normal; font-variant: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">F
 :</strong><span style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">&nbsp;&#43;1
 514 904-0611&nbsp;</span><br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<span style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">740
 Notre Dame St. West, Suite 1575&nbsp;</span><br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<span style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">Montreal,
 Quebec, Canada H3C 3X6&nbsp;</span><br style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">
<a href="http://www.imetrik.com/" target="_blank" style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; color: rgb(64, 174, 73); font-family: Helvetica, Arial, sans-serif; line-height: 14px;" class="">imetrik.com</a>
</div>
<br class="">
</div>
</body>
</html>