আমি এককালীন পাসওয়ার্ড ব্যবহার করার চেষ্টা করছি যা গুগল প্রমাণীকরণকারী অ্যাপ্লিকেশন ব্যবহার করে উত্পন্ন করা যেতে পারে ।
গুগল প্রমাণীকরণকারী কী করে
মূলত, গুগল প্রমাণীকরণকারী দুটি ধরণের পাসওয়ার্ড প্রয়োগ করে:
- হটপ - এইচএমএসি-ভিত্তিক ওয়ান-টাইম পাসওয়ার্ড, যার অর্থ আরএফসি 4226 অনুসারে প্রতিটি কলের সাথে পাসওয়ার্ড পরিবর্তন করা হয় এবং
- টোটিপি - সময়-ভিত্তিক ওয়ান-টাইম পাসওয়ার্ড, যা প্রতি 30-সেকেন্ড সময়কালে পরিবর্তিত হয় (যতদূর আমি জানি)।
গুগল প্রমাণীকরণকারী ওপেন সোর্স হিসাবে এখানে উপলব্ধ: কোড. google.com/p/google-authenticator ator
বর্তমান কোড
আমি HOTP এবং TOTP পাসওয়ার্ড তৈরি করার জন্য বিদ্যমান সমাধানগুলি সন্ধান করছিলাম, তবে খুব বেশি কিছু পাই নি। আমার কাছে থাকা কোডটি হটপ উত্পন্ন করার জন্য নিম্নলিখিত স্নিপেট দায়বদ্ধ:
import hmac, base64, struct, hashlib, time
def get_token(secret, digest_mode=hashlib.sha1, intervals_no=None):
if intervals_no == None:
intervals_no = int(time.time()) // 30
key = base64.b32decode(secret)
msg = struct.pack(">Q", intervals_no)
h = hmac.new(key, msg, digest_mode).digest()
o = ord(h[19]) & 15
h = (struct.unpack(">I", h[o:o+4])[0] & 0x7fffffff) % 1000000
return h
আমি যে সমস্যার মুখোমুখি হচ্ছি তা হ'ল উপরের কোডটি ব্যবহার করে আমি যে পাসওয়ার্ডটি উত্পন্ন করি তা অ্যান্ড্রয়েডের জন্য গুগল প্রমাণীকরণকারী অ্যাপ্লিকেশন ব্যবহার করে উত্পন্ন করা মতো নয়। যদিও আমি জিএ অ্যাপ্লিকেশনটিতে উপলব্ধ চাবি সমান হয়ে একাধিক intervals_no
মান (ঠিক প্রথম 10000 দিয়ে শুরু করে intervals_no = 0
) চেষ্টা করেছি secret
।
আমার কাছে প্রশ্ন
আমার প্রশ্নগুলি হ'ল:
- আমি কি ভুল করছি?
- পাইথনে আমি কীভাবে HOTP এবং / অথবা TOTP উত্পন্ন করতে পারি?
- এর জন্য কি পাইথন লাইব্রেরি আছে?
সংক্ষেপে: দয়া করে আমাকে এমন কোনও ক্লু দিন যা আমার পাইথন কোডের মধ্যে Google প্রমাণীকরণকারী প্রমাণীকরণ কার্যকর করতে সহায়তা করবে।