Encrypt و Decrypt رشته 24 کاراکتری با شرایط خاص

sorooshk

Active Member
با سلام خدمت اساتید گرامی MMB
من یک پروژه ای دارم ایجاد می کنم که بر اساس شرایط ویژه ای که داره باید یک کد 24 کاراکتری (که همه شماره هستند) را از برنامه بگیره Encrypt بکنه و به کاربر نشون بده.
کاربر اون کد را به شخص مورد نظر تحویل میده که اون بتونه Decrypt کنه و بفهمه چی به چی هست.
حالا چند نکته:
1. سعی کردم تمامی پلاگین هایی که برای این کار هستند را ببینم و کار کنم ولی اون چیزی که من می خوام نیست چرا؟
2. به این دلیل که من می خواهم اولا از کاراکترهای نامعلوم و سخت مثل علامت بتا و ستاره و .... استفاده نشه و تا جایی که میشه کاراکتر های راحت باشه.
3. ضمنا اون متن رمزی که تولید میشه طولش کمتر از متن اصلی باشه. مثلا اگر متن اصلی 24 کاراکتر هست اون متن رمزی بشه 10 کاراکتر میدونم توقع زیادی هست ولی باور کنید چاره ای جز این کار ندارم

فقط یک مورد پلاگین SQLite را چک نکردم که چنین مواردی را میتونه به من بده یا نه اگر کسی حتما مطمئن هست که میشه چنین چیزی تولید بشه توسط این پلاگین حتما بهم بگه.
اگر کسی توانایی نوشتن چنین پلاگینی با شرایطی را که گفتم (با هزینه منصفانه) لطفا به من پیام خصوصی بدهند.

ممنون از راهنمایی شما دوستان.
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
اگه درست بخاطر داشته باشم چون چندسالی هست از بیلدر دور بودم این قابلیت رمز گذاری در این پلاگین وجود ندارد
ولی خودتون میتونید یه الگوریتمی بنویسید با خود بیلدر که شماره های با طول 24 رو براحتی برای شما با طول نصفه که 12 میشه رو تبدیل و انکریپت کنه در صورتی که قصد ساخت یه انکریپت کننده قوی داشته باشین یکم موضوع براتون پیچیده میشه وگرنه پیاده کردنش بسیار سادست و همینطور که مد نظرتون هست ساخت.
 

sorooshk

Active Member
سلام
ممنون از پاسختون. برای من مهمترین چیز طول رشته هست یعنی هر چی کمتر و در عین حال سر و ساده تر باشه بهتره. رمزی بودنش در حالت معمولی هم کافیه و خیلی امنیت بالایی نمیخواد.
میشه در مورد نوشتن الگوریتمش توضیح بدین؟ چندتایی پیدا کردم تو نت ولی هر چی کدش را دست کاری میکنم بدتر میشه که بهتر نمیشه.
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
برای مثال عدد شما بدین شکل هست :
65666768
بهترین راه این هست که دوتا دوتا جدا کرده و به کد اسکی تبدیلشون کرد در صورتی که کارکترهای خاصی شد که دوست نداشتین برای مثال % درصد میتونید یه ارایه تعریف کنید و جایگزین هاش رو تعریف کنید تا برای مثال اگه درصد شد جایگزینش t کوچیک رو تعربف کن
این روش بسیار سادست یه حلقه نیاز داره با ارایه و تابع CHR برای تبدیل و توابع مربوطه
کد اسکی عدد بالا هم بدین شکل میشه
ABCD
باز مشکلی بود درخدمتم
 

sorooshk

Active Member
سلام مجدد
خیلی ممنون از لطفتون
لطفا لینک زیر را ببینید
http://www.mmbforums.com/viewtopic.php?f=17&t=5767
دراین مثالی که تو لینک بالا گذاشته کاری شبیه کار شما انجام شده ولی بدیش اینه که 24 تا کاراکتر میشه همون 24 تا. کجای این پروژه را تغییر بدم که تا میشه فشرده و راحت تر بشه؟؟؟ ممنون
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
من الان بیلدر ندارم که مثال نگاه کنم ولی این روشی که من گفتم کلا نصف میشه الان طول اعداد نگاه کنید طولش 8 تاست طول تبدیل شده رو هم نگاه کنید شده 4 تا کجا میشه همون 24 کارکتر تازه اگه وقت بیشترین بذارین رو الگوریتم میشه کمترش کرد
راستی باهم همشهری هم هستیم که
 
آخرین ویرایش:

sorooshk

Active Member
سلام ممنون از لطفتون سعی میکنم روش کار کنم
آره من هم الان دیدم خوشحالم که همشهری هستیم.
 

sorooshk

Active Member
سلام
دارم روی کدی که گفتید کار می کنم. تنها مشکلی که داره این هست که دستور ord حتما یک کاراکتر میگیره چکار کنم که بشه دو تا کاراکتر به یک عدد یا حرف خاصی عوض بشه؟
کدی که تا الان نوشتم:

کد:
char$='2314'
For i=1 To LEN(char$)
  h$=StrCopy(char$,i,2)
  char=ORD(h$)
  f$=f$+CHAR(char)
  t$=CHR(name)
Next i
DisplayValue("EditBox","f$")
LoadText("Text","t$")
 
آخرین ویرایش:

loo30fer

کاربر متخصص مولتی مدیا بیلدر
بدین شکل باید عمل میکردین:
کد:
compress$=''
offset=1
number$='6566676869'
x=LEN(number$)/2
For i=1 To x
  char$=StrCopy(number$,offset,2)
  char=VAL(char$)
  compress$=compress$+CHR(char)
  offset=offset+2
Next i
MessageEx("","compress$")
در مورد کارکترهای غیر چاپ هم بهتون گفتم باید یه ارایه تعریف کنید و کارکترهای جایگزین رو براش تعریف کنید
در صورتی که اشنایی خوبی با بیلدر ندارین کتاب جناب silvercover رو مطالعه کنید و یاد بگیرین فقط نگین نمیشه​
 

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

بالا