আমার গোপনীয়তা সংরক্ষণ করুন!


14

আমার অনেক গোপন রহস্য আছে এবং এগুলি রাখার কোথাও নেই!

লক্ষ্যটি সহজ: একটি প্রোগ্রাম লিখুন যা আপনাকে একটি স্ট্রিং সংরক্ষণ করতে দেয় এবং এটি একটি পাসওয়ার্ড দ্বারা সুরক্ষিত রাখতে পারে।

প্রোগ্রামটি প্যারামিটার হিসাবে একটি নাম, পাসওয়ার্ড এবং (alচ্ছিক) গোপন গ্রহণ করবে।

যদি প্রথমবারের মতো কোনও প্রোগ্রামটিকে কোনও প্রদত্ত ওরফে দিয়ে ডাকা হয়, তবে এটি গোপনীয়তা সংরক্ষণ / স্মরণ করবে এবং আপনি যা চান আউটপুট।

প্রোগ্রামটি যদি এমন কোনও উপনামের সাথে ডাকা হয় যা আগে ব্যবহার করা হয়েছিল, তবে এটি সেই উরফের গোপনীয়তা আউটপুট দেবে যদি পাসওয়ার্ডটি প্রথমবারের মতো সেই উলামের সাথে চালিত হয়েছিল।

অন্যান্য ক্ষেত্রে

  • যদি এটি প্রথমবারের মতো কোনও নির্দিষ্ট ওরফে দিয়ে ডাকা হয় এবং কোনও গোপনীয়তা দেওয়া না হয় - কিছুই রাখে না।

  • প্রোগ্রামটি যদি এমন কোনও উপনামের সাথে ডাকা হয় যা ব্যবহার করা হয়, এবং পাসওয়ার্ডটি ভুল হয় - কোনও ধরণের ত্রুটি বা কিছুতেই ফেরত দিন না।

  • প্রোগ্রামটি যদি এমন কোনও উপনামের সাথে ডাকা হয় যা ব্যবহার করা হয়, পাসওয়ার্ডটি সঠিক হয় এবং একটি নতুন গোপন সরবরাহ করা হয় - পুরানো গোপন আউটপুট দিন এবং এটি একটি নতুন সাথে প্রতিস্থাপন করুন যাতে পরের বার কেবল নতুন গোপন আউটপুট হয়।

  • প্রোগ্রামটি যদি এমন কোনও উপনামের সাথে ডাকা হয় যা ব্যবহার করা হয়, তবে পাসওয়ার্ডটি সঠিক এবং কোনও নতুন গোপন সরবরাহ করা হয়নি - পুরানো গোপন আউটপুটটি নির্ধারণ করুন এবং তা প্রতিস্থাপন না হয়ে গেছে তা নিশ্চিত করুন।

দ্রষ্টব্য: এই গোপনীয়তা / পাসওয়ার্ডগুলি নিরাপদে সংরক্ষণ করার প্রয়োজন নেই

এছাড়াও নোট করুন: এলিয়াস পাসওয়ার্ড এবং গোপনীয়তার জন্য যে কোনও বর্ণানুক্রমিক ইনপুট গ্রহণ করা উচিত

মানক বিধি প্রয়োগ, শুভকামনা!


1
হ্যাঁ, এটি সঞ্চয় করার জন্য কোনও কিছু ব্যবহার করুন - এলিয়াস হিসাবে আমি মনে করি এটির কোনও বর্ণানুক্রমিক ইনপুট গ্রহণ করা উচিত
কুইন

1
আমরা কি পুরো প্রোগ্রামের চেয়ে কোনও ফাংশন ব্যবহার করতে পারি?
আর্নৌল্ড

1
@ আরনাউল্ড আমি এটির অনুমতি দেব
কুইন

1
আমরা কি পাসওয়ার্ড এবং গোপনীয় খালি স্ট্রিং না ধরে নিতে পারি?
xnor

1
আমরা গোপন আউটপুট না এমন পরিস্থিতিতে এমন একটি শূন্য উত্তর (যেমন 0 বা কোনও নয়) আউটপুট করতে পারি?
xnor

উত্তর:


10

জাভাস্ক্রিপ্ট (ES6),  60  50 বাইট

সংরক্ষিত 10 বাইট @ জোনাস উইলমসকে ধন্যবাদ !

পারেন হিসাবে ইনপুট লাগে (alias,password,secret)বা (alias,password)। রিটার্নস undefined প্রথমবার একটি গোপন সংরক্ষিত হয়, অথবা মিথ্যা যদি পাসওয়ার্ডটি ভুল।

f=(a,p,s,[P,v]=f[a]||[p])=>p==P&&(f[a]=[P,s||v],v)

অনলাইনে একটি প্রথম পরীক্ষার কেস চেষ্টা করুন!

অনলাইনে ২ য় পরীক্ষার মামলা চেষ্টা করুন!

কিভাবে?

মন্তব্য

f = (             // f = named function whose underlying object is used for storage
  a,              // a = alias
  p,              // p = password
  s,              // s = optional secret
  [P, v] = f[a]   // if f[a] is defined, retrieve the password P and the secret v
           || [p] // otherwise, copy p in P
) =>              //
  p == P && (     // if p is not equal to P, yield false; else:
    f[a] = [      //   update f[a]:
      P,          //     save the new password (or leave it unchanged)
      s || v      //     save the new secret if it's defined, or keep the previous one
    ],            //
    v             //   return the previous secret
  )               //

আপনি কীভাবে জিনিসপত্র সংরক্ষণ করছেন তা স্পষ্ট করতে আমাকে একটি সেকেন্ড নিয়েছিল!
শেগি

হুম, হয় এই সঠিক?
এনজিএন

1
@ জিএনএন সম্ভবত এটি সম্ভবত ভুল। এটি রিপোর্ট করার জন্য ধন্যবাদ। এখনই ঠিক করা উচিত।
আর্নাউল্ড

-7 বাইট অবজেক্টের ভিতরে একটি [পাসওয়ার্ড, মান] অ্যারে সংরক্ষণ করে।
জোনাস উইলস

@ জোনাস উইলমস সুন্দরভাবে সম্পন্ন হয়েছে! যেখানে p&&প্রয়োজন সেখানে আমি ভাবতে পারি না । সুতরাং, এটি অন্য -3 বাইট।
আর্নল্ড

6

পাইথন 2 , 94 93 বাইট

def f(a,p,s=0,d={}):
 q,t=d.get(a,(0,0))
 if q==p:d[a]=p,s or t;return t
 elif q<1<s:d[a]=p,s

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

একবারের জন্য পাইথনের অদ্ভুত ডিফল্ট ডামা প্যারামিটার আমার পক্ষে কাজ করে ...


অপেক্ষা করুন, একটি ডিফল্ট আর্গুমেন্ট ব্যবহার করে এটি ফাংশন কলে নতুনটির পরিবর্তে কেবল একটি অবজেক্ট তৈরি করে? হুমম ... এটি আমাকে অনেক আগেই হ'ল ডিবাগিংয়ের ব্যাখ্যা করে।
হাইপারনিউটারিনো



1

সি # (ভিজ্যুয়াল সি # ইন্টারেক্টিভ সংকলক) , 140 138 134 বাইট

-2 বাইটস @ এক্সপায়ারড ডেটা ধন্যবাদ

a=>p=>s=>(a=P.ContainsKey(a)?P[a]:P[a]=new[]{p,s},o:p==a[0]?a[1]:p,s==""?s:p==a[0]?a[1]=s:s).o;var P=new Dictionary<string,string[]>()

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



1
@ExpiredData 134, যেমন Pহতে হবে তা নয় dynamicএখন
আমার সর্বনাম monicareinstate হয়


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.