বব এর পাসওয়ার্ড


13

ভূমিকা

বব তার ব্যবহার করা প্রতিটি ওয়েবসাইটের জন্য আলাদা আলাদা পাসওয়ার্ড রাখতে পছন্দ করে। তিনি একটি বিশেষ ফর্ম্যাটে পাসওয়ার্ড চান যাতে সে মনে রাখতে পারে। কোড দৈর্ঘ্যে যতটা সম্ভব সংক্ষিপ্ত একটি পাসওয়ার্ড জেনারেটর তৈরি করে তাকে সহায়তা করুন, কারণ তিনি নিজের নামের মতো জিনিসগুলি ছোট রাখতে পছন্দ করেন।

চ্যালেঞ্জ

ববকে একটি পাসওয়ার্ড জেনারেটর তৈরি করুন যা চারটি পরামিতিগুলিতে লাগে -

  • ডোমেন ঠিকানা, (উদা: স্ট্যাকেক্সচেঞ্জ.কম)
  • নামের প্রথম অংশ,
  • নামের শেষাংশ,
  • জন্ম তারিখ এবং বছর।

এবং একটি স্ট্রিং আউটপুট দেয় যা নিম্নলিখিত ট্রান্সফর্মেশনগুলিতে চলেছে।

প্রতিটি পাসওয়ার্ডের ডোমেন নামের দৈর্ঘ্যের l এর উপর ভিত্তি করে একটি টেম্পলেট থাকে । যদি ঠ প্রধানমন্ত্রী তাহলে টেমপ্লেট এই ফর্ম হয় -

[birth-date][domain-name][lastname][birth-year][symbol]

অন্যথায় এটি এই ফর্মের -

[symbol][birth-year][firstname][domain-name][birth-date]।

প্রতীক ক্ষেত্রটির ডোমেন প্রকারের ভিত্তিতে মান থাকবে।

.com -> $$$
.org -> &&&
। নেট -> %%%
.edu -> +++
.gov -> @@@
.মিল -> >>>
ডিফল্ট -> ~~~

এখন, তিনি ক্ষেত্রগুলিতে একটি সিজার সাইফার চালনা করতে চান - [firstname][domain-name][lastname]। L প্রাইম থাকলে অন্যদিকে বাম থাকলে শিফট দিকটি সঠিক হয়। শিফট মানটি জন্ম তারিখ এবং বছর সংযোজনের মান দ্বারা নির্ধারিত হয়।

উপরের প্রক্রিয়াটির পরে, পাঠটি সহজেই মনে রাখা যায় না তাই তিনি চান যে সিফার্ড পাঠ্যটি উচ্চারণযোগ্য হোক। এটি করার জন্য তিনি প্রতি তৃতীয় ব্যঞ্জনবর্ণকে বর্ণানুক্রমিক ক্রমে (যেমন, aeiou) একটি স্বর দিয়ে প্রতিস্থাপন করতে চান ।

অবশেষে, তিনি একই অক্ষরের ক্রমাগত ঘটনাগুলি মুছতে চান।

উদাহরণ

ইনপুট - stackexchange.com বব উইলিয়ামস 0894

আউটপুট - 08qraicvafyecugjigyoq94 $$$।

ব্যাখ্যা:

পাসওয়ার্ড টেমপ্লেট [birth-date][domain-name][lastname][birth-year][symbol], কারণ ডোমেন নামের দৈর্ঘ্য stackexchangeএকটি প্রধান। সিম্বলটি $$$ডোমেন টাইপের মতোই হবে .com।

আসুন টেমপ্লেটে সেই মানগুলি পূরণ করুন - 08stackexchangewilliams94$$$। এখন সিজার সাইফারটি মাঠে চালাতে হবে [firstname][domain-name][lastname](এটি কেবলমাত্র এই ক্ষেত্রে শেষ নাম)। শিফট দিকবিন্যাস ডান কারণ ঠ মৌলিক এবং শিফট মান 08+94 = 102।

সুতরাং, 08stackexchangewilliams94$$$পরিণত হয় 08qryaicvafylecugjjgykq94$$$। এখন প্রতি তৃতীয় পর পর ব্যঞ্জনবর্ণ একটি স্বর দ্বারা প্রতিস্থাপিত হয় - 08qraaicvafyeecugjigyoq94$$$ একই চিঠির প্রতিটি টানা অবিচ্ছিন্নতা মুছে ফেলা হয় - 08qraicvafyecugjigyoq94$$$। এটি বব জন্য উচ্চারণযোগ্য চিন্তা করবেন না।

অতিরিক্ত তথ্য

  • ডোমেন ঠিকানা, প্রথম নাম এবং পদবিতে কেবল ছোট হাতের বর্ণমালা থাকে।
  • ডোমেনের ঠিকানাটিতে সর্বদা কেবল দ্বিতীয় স্তরের এবং শীর্ষ স্তরের ডোমেন থাকে, পছন্দ হয় stackexchange.comনা codegolf.stackexchange.com। এছাড়াও, মত ডোমেনগুলি .co.ukঅনুমোদিত নয় তবে কেবল .ukবা .inবৈধ।
  • বর্ণানুক্রমিক ক্রমে স্বর প্রতিস্থাপন হ'ল চক্রীয়। আমার অর্থ u, aপ্রতিস্থাপনের জন্য ব্যবহৃত হয়।
  • সিজার সাইফারের জন্য ASCII ব্যাপ্তি 97 - 122 সমেত।
  • এখানে বর্ণিত হিসাবে আপনি ইনপুট নিতে পারেন ।
  • আউটপুট একটি স্ট্রিং হতে হবে।
  • জন্ম তারিখ এবং বছরের বিন্যাসটি ddএবং yy.সেই 02গ্রহণযোগ্য এবং 2তা নয়।

এটি কোড-গল্ফ, তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী। শুভ গল্ফিং!


4
ডোমেনের নামটিতে সর্বদা কেবল দ্বিতীয় স্তরের এবং শীর্ষ স্তরের ডোমেন থাকবে stackexchange.com, না img.stackexchange.com? দেশের ডোমেনগুলি কী পছন্দ করে bbc.co.uk?
— ব্রিটিশবাদী

আপনার উদাহরণ কল ব্যবহার করে 0894যা যুক্ত করে 102তবে ব্যাখ্যাটি ব্যবহার করে 08+96=106। সিফেরযুক্ত পাঠ্যটি 102মানটি ব্যবহার করে । কেবলমাত্র একটি সামান্য অসঙ্গতি যা বিভ্রান্ত হতে পারে ...
— ব্রিটিশবাদী

6
বব হ'ল এক পাগল মোফো যদি সে উচ্চারণ করতে পারে।
— যাদু অক্টোপাস উরন

5
@ কারাসোকম্পুটিং সম্ভবত বব ওয়েলশ?
— ব্রিটিশবাদী

1
না আমি বলতে চাইছি আপনি টাইপ করবেন defualtনাdefault
— রোমান গ্রাফ

উত্তর:


7

পাওয়ারশেল 3+, 480 476 474 453 450 448 বাইট

param($d,$f,$l,$b)$s,$t=$d-split'\.'
$m,$y=$b-split'(?<=..)(?=..)'
$v=+$m+$y
$p='1'*$s.Length-match'^(?!(..+)\1+$)..'
$c={-join([char[]]"$input"|%{[char](97..122)[((+$_-97)+((26-$v),$v)[$p])%26]})}
$s=$s|&$c
$f=$f|&$c
$l=$l|&$c
$a=(($a=@{com='$';org='&';net='%';edu='+';gov='@';mil='>'}.$t),'~')[!$a]*3
("`"$(("$a$y$f$s$m","$m$s$l$y$a")[$p]-replace'([^aeiou\d]{3})',"`$('`$1'-replace'[a-z]`$$',('aeiou'[`$i++%5]))")`""|iex)-replace'([a-z])\1+','$1'

এটি অনলাইন চেষ্টা করুন!

টিমমিডকে ধন্যবাদ 24 26 বাইট সংরক্ষিত !

বাহ, এটা ছিল এক পাগল। আমি মনে করি না পরে বা কাল পর্যন্ত আমি এর একটি সম্পূর্ণ ব্রেকডাউন পোস্ট করতে পারি।

দ্রষ্টব্য: সমস্ত লাইন শেষ \n( 0x10), যাতে আমাকে এটি ব্যবহার করতে ;এবং এগুলি সমস্ত এক লাইনে না লাগাতে হয়।

সংক্ষিপ্ত বিবরণ:

  1. ডোমেনটিকে দ্বিতীয় স্তর এবং শীর্ষ স্তরে বিভক্ত করুন।
  2. জন্ম তারিখটি মাস এবং বছরে বিভক্ত করুন।
  3. শিফ্টের মান গণনা করুন।
  4. এসএলডি এর দৈর্ঘ্য প্রধান কিনা তা নির্ধারণ করুন। যেহেতু বিভাগটি characters৩ টি অক্ষরের চেয়ে বেশি হতে পারে না ( আরএফসি 1035 দেখুন ), আমি মনে করি কেবল প্রাইমগুলির তালিকা হার্ডকোড করা কম ছিল :) প্রস্তাবিত রেজেক্স পদ্ধতিটি ব্যবহার করে।
  5. সিজার সাইফার সম্পাদনের জন্য একটি স্ক্রিপ্টব্লক (মূলত বেনামে ফাংশন) সংজ্ঞায়িত করুন।
  6. প্রথম এবং শেষ নাম এসএলডি-তে সাইফারটি প্রয়োগ করুন
  7. একটি হ্যাশটেবল এবং সূচক মজাদার ব্যবসার সাথে প্রতীকটি পান।
  8. অবশেষে, একটি বিশাল দৈত্যদণ্ড যেখানে আমি উপযুক্ত টেমপ্লেটটি প্রয়োগ করি, ব্যঞ্জনবর্ণ ট্রিপল্টের জন্য একটি প্রতিস্থাপন চালান, প্রতিটির পরিবর্তে একটি সুব্যাক্সারেশন (কোড) দিয়ে প্রতি বিভাগটি যথাযথ মান দিয়ে প্রতিস্থাপন করে, তারপরে ফলাফল নির্ধারণের জন্য স্ট্রিংটি চালান Invoke-Expression( iex) এমবেডেড কোড উত্পন্ন হয়েছে, তারপরে একক অক্ষরের সাথে একটানা অক্ষরের একটি চূড়ান্ত প্রতিস্থাপন।

@ টিমিডি বাহ আমি এর আগে কখনও দেখিনি, এবং এটি দুর্দান্ত ill ধন্যবাদ!
— ব্রিটিশবাদী

@ টিমিডি আপনি জানেন, আমি মূলত এটি আনারির সাথে লেখার চেষ্টা -joinকরেছি এবং আমি শপথ করে বলতে পারি যে এটি স্পেসগুলির সাথে যোগ দিচ্ছে এবং এটি নয় $null, যা আমাকে অবাক করে দিয়েছে, তবে এটি পুনরায় চেষ্টা করার পরে এটি আমার প্রত্যাশা মতো কাজ করেছে। অদ্ভুত (এবং আবার ধন্যবাদ)!
— ব্রিটিশবাদী
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.