بتاريخ: 20 سبتمبر 201510 سنة comment_266155 السلام عليكم ورحمة الله شباب أبغى أعرف طريقة تشفير أرقام مثل لوحة أرقام الجوال إلى حروف على سبيل المثال a = 2 b = 22 c = 222 d = 3 e = 33 أرجو أن أجد الحل عندكم تقديم بلاغ
بتاريخ: 21 سبتمبر 201510 سنة comment_266179 SELECT TRANSLATE('12345','ABCDE') FROM DUAL ; اقرأ عن TRANSLATE OR REPLACE FUNCTIONS تقديم بلاغ
بتاريخ: 22 سبتمبر 201510 سنة comment_266184 CREATE OR REPLACE FUNCTION EN_DECRYPT (INPUT_STR IN VARCHAR2 , ACTION IN VARCHAR2)RETURN VARCHAR2 IS CRNT_CHR VARCHAR2(2) ; -- CONCURRENT CHARACTER . REVRS_STR VARCHAR2(2000); TEMPSTR VARCHAR2(2000) := NULL; OUTPUT_STR VARCHAR2(2000); EN_KEY NUMBER(1) := 1; RSLT VARCHAR2(2000); INPUT VARCHAR2(2000); BEGIN -- GET EN_KEY -- EN_KEY := SUBSTR(LENGTH(INPUT_STR),1,1); INPUT := EN_KEY||INPUT_STR; -- CHECK IF INPUT_STR IS NULL --------------------------- --- E N C R Y P T I O N --- --------------------------- IF ACTION = 'E' OR ACTION = 'e' THEN -- REVERS THE INPUT LINE FOR I IN REVERSE 1..LENGTH(INPUT) LOOP CRNT_CHR := SUBSTR(INPUT,I,1); IF ASCII(CRNT_CHR) = 32 THEN CRNT_CHR := '}{'; END IF; -- IF THE CRNT_CHR IS SPACE THEN REPLACE IT WITH ,! [_(] REVRS_STR := REVRS_STR||CRNT_CHR; END LOOP; -- PARSE THE INPUT LINE . -- GET THE CHARACTER ASCCI -- ADD THE POSITION OF THE CHARACTER PLTIPIED BY 1.5 TO THE ASCII NUMBER FOR I IN 1..LENGTH(REVRS_STR) LOOP CRNT_CHR := SUBSTR(REVRS_STR,I,1); RSLT := RSLT||CHR((ASCII(CRNT_CHR))+(EN_KEY)); END LOOP; ELSIF ACTION = 'D' OR ACTION = 'd' THEN ----------------------- -- D C R Y P T I O N -- ----------------------- TEMPSTR := NULL; REVRS_STR := NULL; FOR I IN 1..LENGTH(INPUT_STR) LOOP CRNT_CHR := SUBSTR(INPUT_STR,I,1); TEMPSTR := TEMPSTR||CHR((ASCII(CRNT_CHR))-(EN_KEY)); END LOOP; -- REVERS THE OUTPUT LINE FOR I IN REVERSE 1..LENGTH(TEMPSTR) LOOP CRNT_CHR := SUBSTR(TEMPSTR,I,1); IF ASCII(CRNT_CHR) = 32 THEN CRNT_CHR := '}{'; END IF; -- IF THE CRNT_CHR IS SPACE THEN REPLACE IT WITH ,! [_(] REVRS_STR := REVRS_STR||CRNT_CHR; END LOOP; FOR I IN 1..LENGTH(REVRS_STR) LOOP CRNT_CHR := SUBSTR(REVRS_STR,I,1); IF CRNT_CHR = '{' THEN IF SUBSTR(REVRS_STR,I+1,1) = '}' THEN CRNT_CHR := NULL; END IF; END IF; IF CRNT_CHR = '}' THEN IF SUBSTR(REVRS_STR,I-1,1) = '{' THEN CRNT_CHR := '_'; END IF; END IF; RSLT := RSLT||CRNT_CHR; END LOOP; RSLT := SUBSTR(RSLT,2,LENGTH(RSLT)-1); END IF; RETURN(RSLT); END; / =============================================================================================== تشفير SELECT EN_DECRYPT('123456','e') FROM DUAL ; الناتج 7654322 --------------------------------------------------------------------------------------------- فك التشفير SELECT EN_DECRYPT('7654322','d') FROM DUAL ; الناتج 123456 ====================================================================================== للامانه منقول من احدى الزملاء تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.