روشی ساده برای کدگذاری روی string

yaa110

کاربر فعال
در این درس نحوه encrypt کردن مقادیر String آموزش داده می شود. در این روش دو آرایه از حروف و مقادیر معادل حروف تعریف می شود. به این صورت که یک مقدار String گرفته می شود و سپس حروف آن جدا می شوند و به ازای هر حرف مقدار معادل آن قرار داده می شود.

۱- برای شروع یک پروژه Action Script 3 بسازید.

۲- ابتدا آرایه حروف را تعریف می کنیم، برای مثال در این جا فقط ۱۰ کاراکتر در این آرایه قرار گرفته است. برای کامل شدن کاراکترها باید همه حروف کوچک و بزرگ انگلیسی، اعداد، حروف فارسی و نمادها نیز اضافه شوند.

کد:
var letters:Array = ["a", "b", "c", "d", "e", "f", "g", "A", "B", "C"];

3- حالا آرایه معادل حروف تعریف می شود. در این جا برای مثال به ازای هر حرف، از سه کاراکتر استفاده شده است. دقت کنید که برای همه کاراکترهایی که در آرایه حروف قرار گرفته اند باید یک معادل با ۳ کاراکتر (البته بستگی به انتخاب شما دارد) تعریف شود.

کد:
var codes:Array = ["lI$", "#@d", "!dR", "a~1", "^Lg", "lkd", "^%(", "()9", "LB%", "#!D"];

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

کد:
function Encode(Word:String):String {
var temp:String = “”;
for (var i:Number = 0; i < Word.length; i++) {
temp += codes[letters.indexOf(Word.slice(i, i+1))];
}
return temp;
}

5- حالا نیاز به تابعی داریم که بتواند مقادیر کد شده را به حالت اول برگرداند، بنابراین در این تابع باید حروف کلمه ورودی را سه تا سه تا (یا هر تعدادی که در نظر گرفتید) جدا کرد، سپس اندیس این ۳ کاراکتر باید در آرایه معادل پیدا شود و در نهایت مقدار معادل اندیس در آرایه حروف یافت شود.

کد:
function Decode(Word:String):String {
var temp:String = “”;
for (var i:Number = 0; i < Word.length – 2; i += 3) {
temp += letters[codes.indexOf(Word.slice(i, i + 3))];
}
return temp;
}

6- با توجه به این که هر دو تابع یک خروجی String دارند، بنابراین می توان از آنها به راحتی استفاده کرد. برای مثال:

کد:
trace(Encode(“adA”)); // Output: lI$a~1()9
trace(Decode(“lI$a~1()9″)); // Output: adA
trace(Decode(Encode(“adA”))); // Output: adA

http://flashcenter.ir/?p=465
 
آخرین ویرایش:

JavidFlasher

کاربر فعال
یه راه دیگه:
کد:
function code (str:String):String {
	var newCode:String=""
	for (var i:int;i<str.length;i++) {
		str.charCodeAt()
		newCode+=String.fromCharCode(str.charCodeAt(i)-4)
		
}
return newCode
}

function decode (str:String):String {
	var newCode:String=""
	for (var i:int;i<str.length;i++) {
		str.charCodeAt()
		newCode+=String.fromCharCode(str.charCodeAt(i)+4)
}
return newCode
}

trace(code("javid"))
trace(decode("f]re`"))
 

جدیدترین ارسال ها

بالا