SQL

All posts tagged SQL

در روش sql Authenticator چگونه کلمه عبور کد شود

در روش استفاده از پایگاه داده برای اعتبار سنجی که در همین فروم در لینک زیر مطرح گردیده است

اعتبار سنجی با استفاده ​ا​​ز ​جدول پایگاه داده

کلمه عبور بصورت ساده ذخیره میگردد در زیر نحوه کد شدن کلمه عبور با استاندارد MD5 در PLSQL وJava مطرح میگردد.

برای کد/hash نمودن کامه عبور در پایگاه داده یک function بصورت زیر بنویسید

CREATE OR REPLACE FUNCTION MD5STRING<br />
(<br />
STRING IN VARCHAR2<br />
) RETURN VARCHAR2 AS</p>
<p>INPUT_STRING VARCHAR2(200);<br />
v_Return VARCHAR2(200);<br />
temp varchar2(200);<br />
BEGIN<br />
INPUT_STRING := string;</p>
<p>v_Return := (SYS.DBMS_OBFUSCATION_TOOLKIT.MD5(<br />
INPUT_STRING =&gt; INPUT_STRING ));<br />
-- DBMS_OUTPUT.PUT_LINE('v_Return = ' || v_Return);<br />
select rawtohex(v_return) into temp from dual;<br />
return temp;<br />
END MD5STRING;<br />

function بالا یک ورودی میگیرد و hash آن را برمیگرداند.

مثلاً
select (md5string(‘test’)) from dual;
برابر با
098F6BCD4621D373CADE4E832627B4F6
میگردد

در جاوا هم برای کد نمودن کافیست که تابع زیر را استفاده نمایید.

public static String getMD5(String text) throws NoSuchAlgorithmException, UnsupportedEncodingException {<br />
final MessageDigest algorithm = MessageDigest.getInstance("MD5");<br />
algorithm.reset();<br />
algorithm.update(text.getBytes("utf-8"));<br />
final StringBuilder hexStringBuilder = new StringBuilder();<br />
final byte[] digest = algorithm.digest();<br />
for (byte digestItem : digest) {<br />
String hex = Integer.toHexString(0xFF &amp; digestItem);<br />
if (hex.length() == 1) {<br />
hexStringBuilder.append('0');<br />
}<br />
hexStringBuilder.append(hex.toUpperCase());<br />
}<br />
return hexStringBuilder.toString();<br />
}

حال زمانیکه کلمه عبور را در جدول ذخیره مینمایید کافیست پیش از ذخیره سازی ،آن را با تابع plsql بالا کد نمایید.

در صفحه login در داخل ADF هم کافیست که قبل از ارسال کلمه عبور آن را به کمک تابع جاوا کد نمایید و سپس ارسال نمایید.

خواندن بیشتر
royal visionدر روش sql Authenticator چگونه کلمه عبور کد شود