আমি আমার সি # অ্যাপ্লিকেশনটির জন্য কীভাবে একটি পণ্য কী তৈরি করতে পারি?


91

আমি আমার সি # অ্যাপ্লিকেশনটির জন্য কীভাবে একটি পণ্য কী তৈরি করতে পারি?

আমার বার্ষিক আপডেট হওয়া একটি পণ্য (বা লাইসেন্স) কী তৈরি করতে হবে। অতিরিক্তভাবে ট্রায়াল সংস্করণগুলির জন্য আমার একটি তৈরি করা প্রয়োজন।

সম্পর্কিত:


সংশ্লিষ্ট: stackoverflow.com/questions/715251/...
stukelly

J3r3myK তার প্রশ্ন পোস্ট করার পরে @stukelly পোস্ট করা হয়েছিল ...
দোজার 789

উত্তর:


83

আপনি কোনও অ্যাপ্লিকেশনটিতে প্রমাণীকরণ করতে চান এমন ডেটা রয়েছে এমন একটি রেকর্ড তৈরির মতো কিছু করতে পারেন। এটিতে আপনার পছন্দসই কিছু অন্তর্ভুক্ত থাকতে পারে - যেমন সক্ষম করার জন্য প্রোগ্রাম বৈশিষ্ট্য, মেয়াদ শেষ হওয়ার তারিখ, ব্যবহারকারীর নাম (যদি আপনি এটি কোনও ব্যবহারকারীর সাথে আবদ্ধ করতে চান)। তারপরে এনক্রিপ্ট করুন যে কোনও নির্দিষ্ট কী বা হ্যাশ দিয়ে কিছু ক্রিপ্টো অ্যালগরিদম ব্যবহার করে। তারপরে আপনি এটি কেবল আপনার প্রোগ্রামের মধ্যে যাচাই করুন। লাইসেন্স ফাইলটি (উইন্ডোজগুলিতে) বিতরণ করার একটি উপায় হ'ল এটি এমন একটি ফাইল হিসাবে সরবরাহ করা যা রেজিস্ট্রি আপডেট করে (ব্যবহারকারী এটি টাইপ করে সংরক্ষণ করে) updates

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

আপনি কোনও ডিবাগার ইত্যাদিতে প্রোগ্রাম চালানো রোধ করতে কৌশলগুলি ব্যবহার করে কিছুটা জটিল করতে পারেন, তবে এটি বুলেট প্রুফও নয়। সুতরাং আপনার কেবল এটি যথেষ্ট কঠিন করা উচিত যে কোনও সৎ ব্যবহারকারী অর্থ প্রদান করতে ভুলে যায় না। আপনার স্কিমটি অর্থ প্রদানকারী ব্যবহারকারীদের পক্ষে বাধা সৃষ্টি না হওয়ার বিষয়ে খুব সাবধানতা অবলম্বন করুন - আপনার অর্থপ্রদানকারী গ্রাহকরা যা প্রদান করেছেন তার ব্যবহার করতে না পারার চেয়ে কিছুটা অনুলিপি ছিটিয়ে দেওয়া ভাল।

আরেকটি বিকল্প হ'ল একটি অনলাইন চেক - কেবলমাত্র ব্যবহারকারীকে একটি অনন্য আইডি সরবরাহ করুন এবং সেই আইডিটির কী কী ক্ষমতা থাকতে হবে তা অনলাইনে পরীক্ষা করুন এবং কিছু সময়ের জন্য এটি ক্যাশে করুন। সমস্ত একই সতর্কতা প্রয়োগ করা হয় - লোকেরা এ জাতীয় কিছু পেতে পারে।

তাদের কীগুলি ভুলে গেছে এমন ব্যবহারকারীদের সাথে ডিল করার জন্য সহায়তা ব্যয়গুলিও বিবেচনা করুন etc.

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


4
ভাল সংক্ষিপ্তসার। যদি কেউ বিশ্বাস করেন না যে এটি চিটজিনাইনকে বাইপাস করা সহজ, তবে এটি সহজেই নন-প্রোগ্রামাররা এটি করতে পারে। এই স্তরটিকে সহজ করে তুলতে সেরা।
কেলি

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

16

আপনি কার উপর ভরসা করেন?

আপনার অ্যাপ্লিকেশনটির রানটাইম সুরক্ষা পরিচালনার জন্য আমি কোনও তৃতীয় পক্ষকে বিশ্বাস করার জন্য এই অঞ্চলটিকে সর্বদা অত্যন্ত গুরুত্বপূর্ণ বলে বিবেচনা করেছি। একবারে কোনও অ্যাপ্লিকেশনের জন্য সেই উপাদানটি ক্র্যাক হয়ে গেলে, সমস্ত অ্যাপ্লিকেশনের জন্য এটি ক্র্যাক হয়ে যায়। তারা 3 ডি ম্যাক্সের জন্য তৃতীয় পক্ষের লাইসেন্স সলিউশনের সাথে একবার গেলে পাঁচ মিনিটের মধ্যে বিচক্ষণতার সাথে তা ঘটেছিল বছর আগে বছর আগে ... ভাল সময়!

গুরুতরভাবে, আপনার অ্যালগরিদমের উপর সম্পূর্ণ নিয়ন্ত্রণ রাখার জন্য নিজের ঘূর্ণায়মান বিবেচনা করুন। যদি আপনি তা করেন তবে আপনার কীতে থাকা উপাদানগুলি এর লাইনের সাথে ব্যবহার করে বিবেচনা করুন:

  • লাইসেন্সের নাম - আপনি লাইসেন্স দিচ্ছেন এমন ক্লায়েন্টের নাম (যদি থাকে)। সংস্থা মোতায়েন পরিচালনার জন্য দরকারী - আপনি যে লাইসেন্স সরবরাহ করেন সেগুলিতে একটি "ব্যক্তিগতকৃত" নাম রাখতে তাদের বিশেষ বোধ করবেন।
  • লাইসেন্সের মেয়াদ শেষ হওয়ার তারিখ
  • একই লাইসেন্সের আওতায় চলার জন্য ব্যবহারকারী সংখ্যা। এটি ধরে নিয়েছে যে কোনও সার্ভার-ইশ উপায়ে আপনার কাছে কোনও সাইট জুড়ে চলমান দৃষ্টান্তগুলি ট্র্যাক করার একটি উপায় রয়েছে
  • বৈশিষ্ট্য কোড - একাধিক বৈশিষ্ট্য জুড়ে এবং একাধিক পণ্য জুড়ে একই লাইসেন্সিং সিস্টেমটি আপনাকে ব্যবহার করতে দেয়। অবশ্যই যদি এটি একটি পণ্যের জন্য ক্র্যাক হয় তবে এটি সবার জন্য ক্র্যাকড।

তারপরে এটিকে নরকে চেকসাম করুন এবং ক্র্যাক করা আরও শক্ত করার জন্য আপনি যা চান (বিপরীতযোগ্য) এনক্রিপশন যুক্ত করুন।

একটি ট্রায়াল লাইসেন্স কী তৈরি করতে, কেবলমাত্র উপরোক্ত মানগুলির জন্য "ট্রায়াল মোড" হিসাবে অনুবাদ করা মানগুলি সেট করুন।

এবং যেহেতু এখন এটি সম্ভবত আপনার অ্যাপ্লিকেশন / সংস্থার সবচেয়ে গুরুত্বপূর্ণ কোড, অবহেলার পরিবর্তে / পরিবর্তে একটি স্থানীয় ডিএলএল ফাইলটিতে ডিক্রিপ্ট রুটিনগুলি রাখার বিষয়ে বিবেচনা করুন এবং কেবল পি / ইনভোক করুন।

আমি বেশ কয়েকটি সংস্থার জন্য কাজ করেছি তারা এ জন্য সাধারণ সাফল্য অর্জন করেছে success অথবা হতে পারে পণ্যগুলি ক্র্যাকিংয়ের পক্ষে মূল্যবান ছিল না;)


4
এফওয়াইআই এনক্রিপশন সর্বদা বিপরীতমুখী, যা এনক্রিপ্ট করা হয়েছে তা পড়তে না পারা এটি অযথা। হ্যাশিং হ'ল এক উপায় 'এনক্রিপশন' যা আপনি ভাবেন।
স্যামুয়েল

"আপনার নিজের ক্রিপ্টো স্কিম রোল করবেন না", যা আমি মনে করি ব্রুস শ্যিয়ারের (নিশ্চিত নয়), এটি যাওয়ার উপায়। আপনি এই উত্তরটি একবার দেখতে চাইতে পারেন: সিকিউরিটি.স্ট্যাকেক্সেঞ্জ
বিকিউশনস

আপনি কি "..পি / এটিতে আহবান করুন" এর বিস্তারিত বর্ণনা করতে পারেন? আমি লিঙ্কযুক্ত পৃষ্ঠাটি দেখেছি কিন্তু এটি আমার কোনও বুদ্ধিমান হয়নি: - /
মিঃ ক্যালভিন

11

আপনি যদি উইন্ডোজ পণ্য কীগুলির মতো টাইপ করতে পারেন এমন কীগুলি সম্পর্কে জিজ্ঞাসা করছেন তবে সেগুলি কয়েকটি পরীক্ষার উপর ভিত্তি করে। যদি আপনি কীগুলির বিষয়ে কথা বলছেন যা আপনার কপি করতে হবে পেস্ট, তবে সেগুলি ডিজিটাল স্বাক্ষর (প্রাইভেট কী এনক্রিপশন) এর উপর ভিত্তি করে।

একটি সাধারণ প্রোডাক্ট কী যুক্তি দিয়ে বলা যেতে পারে যে পণ্য কীটি চারটি-অঙ্কের চারটি গ্রুপের মতো থাকে abcde-fghij-kljmo-pqrst, এবং এর পরে অভ্যন্তরীণ সম্পর্কগুলি নির্দিষ্ট করতে f + k + p এর সমান হওয়া উচিত, যার অর্থ 2 এর প্রথম সংখ্যাগুলি , 3 এবং 4 গোষ্ঠীর মোট ক। এর অর্থ হল 8XXX-2XXXX-4xxxx-2xxxx বৈধ, তাই 8XXXX-1xxxx-0xxxx-7xxxx। অবশ্যই, অন্যান্য সম্পর্কের পাশাপাশি জটিল সম্পর্কগুলিও থাকবে যেমন, যদি প্রথম দলের দ্বিতীয় সংখ্যাটি বিজোড় হয়, তবে শেষ গ্রুপের শেষ অঙ্কটিও বিজোড় হওয়া উচিত। এইভাবে পণ্য কীগুলির জন্য জেনারেটর এবং পণ্য কীগুলির যাচাইকরণ কেবলমাত্র এটি সমস্ত নিয়মের সাথে মেলে কিনা তা পরীক্ষা করে দেখতে পারে।

এনক্রিপশনটি সাধারণত ব্যক্তিগত কী (== ডিজিটালি স্বাক্ষরিত) ব্যবহার করে এনক্রিপ্ট করা লাইসেন্স সম্পর্কে তথ্যের স্ট্রিং থাকে এবং এতে রূপান্তরিত হয় বেস 64 এ । অ্যাপ্লিকেশন সহ পাবলিক কী বিতরণ করা হয়। যখন বেস 64 স্ট্রিংটি আসে, এটি পাবলিক কী দ্বারা যাচাই করা হয় (== ডিক্রিপ্ট করা) এবং যদি বৈধ বলে মনে হয় তবে পণ্যটি সক্রিয় করা হয়।


9

এটি তুচ্ছ বা ক্র্যাক করা শক্ত হোক না কেন, আমি নিশ্চিত নই যে এটি আসলেই অনেক বেশি পার্থক্য নিয়েছে।

আপনার অ্যাপ্লিকেশনটি ক্র্যাক হওয়ার সম্ভাবনা পণ্যের কী হ্যান্ডলিংয়ের শক্তির চেয়ে বরং তার উপযোগের সাথে আনুপাতিক।

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


6

আমাকে স্বীকার করতে হবে আমি বরং উন্মাদ কিছু করব।

  1. একটি সিপিইউ বাটনেলেক সন্ধান করুন এবং এটি একটি পি / ইনভোকেবল ডিএলএল ফাইল থেকে বের করুন।
  2. পোস্ট বিল্ড অ্যাকশন হিসাবে, একটি এক্সওর এনক্রিপশন কী দিয়ে ডিএলএল ফাইলের অংশ এনক্রিপ্ট করুন।
  3. একটি সরকারী / বেসরকারী কী স্কিম নির্বাচন করুন, ডিএলএল ফাইলে পাবলিক কী অন্তর্ভুক্ত করুন
  4. এমন ব্যবস্থা করুন যাতে পণ্য কীটি ডিক্রিপ্ট করে এবং দুটি অংশকে একত্রে জোর করে দেওয়ার ফলে ডিএলএল-এর এনক্রিপশন কী তৈরি হয়।
  5. ডিএলএল এর ডেলমেইন কোডে, সুরক্ষা (PAGE_EXECUTE_READWRITE) অক্ষম করুন এবং কী দিয়ে এটি ডিক্রিপ্ট করুন।
  6. লাইসেন্স কীচ () পদ্ধতিটি তৈরি করুন যা লাইসেন্স কী এবং পরামিতিগুলির তাত্পর্য পরীক্ষা করে তোলে, তারপরে পুরো ডিএলএল ফাইলটি পরীক্ষা করে, লাইসেন্স লঙ্ঘন উভয়ের উপর ফেলে দেয়। ওহ, এবং এখানে অন্য কিছু সূচনা করুন।

যখন তারা লাইসেন্সচেক সন্ধান করে এবং অপসারণ করে, যখন ডিএলএল বিভাগ বিভাজন শুরু করে তখন কী মজা অনুসরণ করবে ।


এরপরে কি ডিইপি-র অক্ষম হওয়ার দরকার নেই?
রোল্যান্ড শ

না। সেট করা PAGE_EXECUTE_READWRITE স্ব-সংশোধনকারী কোড লেখার জন্য ডকুমেন্টেড সঠিক উপায় এবং কেবলমাত্র সেই পৃষ্ঠায় NX বিট সাফ করে।
জোশুয়া

8
এই সাধারণ কৌশলটি 80 এর দশকের শেষদিকে খুব জনপ্রিয় ছিল। এর দুর্বলতাটি হ'ল "সিক্রেট" কোডটি র‍্যামে ডিক্রিপ্ট করা হয়েছে, এটি সফ্টওয়্যারটির চলমান অনুলিপি থেকে চুরি করা সহজ করে তোলে।
রে বার্নস

5

সেখানে বিকল্প মাইক্রোসফট সফটওয়্যার লাইসেন্সিং এবং সুরক্ষা (SLP) সার্ভিস হিসাবে ভাল। এটি পড়ার পরে আমি সত্যিই চাই যে আমি এটি ব্যবহার করতে পারি।

আমি লাইসেন্সের ভিত্তিতে কোডের কিছু অংশ ব্লক করার ধারণাটি পছন্দ করি। হট স্টাফ এবং। নেট জন্য সর্বাধিক সুরক্ষিত। আকর্ষণীয় পড়ুন এমনকি যদি আপনি এটি ব্যবহার না করেন!

মাইক্রোসফ্ট ® সফ্টওয়্যার লাইসেন্সিং এবং প্রোটেকশন (এসএলপি) পরিষেবাদি একটি সফ্টওয়্যার অ্যাক্টিভেশন পরিষেবা যা স্বাধীন সফ্টওয়্যার বিক্রেতাদের (আইএসভি) তাদের গ্রাহকদের জন্য নমনীয় লাইসেন্সিং শর্তাদি গ্রহণ করতে সক্ষম করে। মাইক্রোসফ্ট এসএলপি পরিষেবাদি একটি অনন্য সুরক্ষা পদ্ধতি নিয়োগ করে যা আপনার অ্যাপ্লিকেশন এবং লাইসেন্সিং তথ্যের সুরক্ষায় সহায়তা করে যা গ্রাহকের সম্মতি বাড়ানোর সময় আপনাকে দ্রুত বাজারে যেতে দেয়।

দ্রষ্টব্য: সংবেদনশীল কোড (যেমন একটি মূল্যবান অ্যালগরিদম) সহ আমি এই পণ্যটি প্রকাশ করতে পারি way


এটি বাতিল হিসাবে স্মরণকারীদের জন্য: এসএলপি আবার চালু হয়েছে
মাইকেল ওলেসন

5

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



2

একটি সহজ পদ্ধতি হ'ল গ্লোবালি ইউনিক আইডেন্টিফায়ার (জিইউডি) ব্যবহার করা। জিইউইডিগুলি সাধারণত 128-বিট মান হিসাবে সংরক্ষণ করা হয় এবং সাধারণত হাইফেন দ্বারা বিভাজিত গ্রুপগুলির সাথে 32 টি হেক্সাডেসিমাল অঙ্ক হিসাবে প্রদর্শিত হয় {21EC2020-3AEA-4069-A2DD-08002B30309D}

সি # তে নিম্নলিখিত কোডটি ব্যবহার করুন System.Guid.NewGuid()

getKey = System.Guid.NewGuid().ToString().Substring(0, 8).ToUpper(); //Will generate a random 8 digit hexadecimal string.

_key = Convert.ToString(Regex.Replace(getKey, ".{4}", "$0/")); // And use this to separate every four digits with a "/".

আমি আসা করি এটা সাহায্য করবে.


1

কৌশলটি এমন একটি অ্যালগরিদম রয়েছে যা কেবলমাত্র আপনি জানেন (যেমন এটি অন্য প্রান্তে ডিকোড করা যেতে পারে)।

সাধারণ জিনিস রয়েছে যেমন "একটি প্রধান সংখ্যা বাছাই করুন এবং এতে একটি যাদু নম্বর যুক্ত করুন"

আরও কনভোলটেড বিকল্পগুলি যেমন বাইনারি ডেটার একটি সেট (যা একটি অনন্য শনাক্তকারী, সংস্করণ নম্বর, ইত্যাদি অন্তর্ভুক্ত করতে পারে) এর অ্যাসিম্যাট্রিক এনক্রিপশন ব্যবহার করে এবং এনক্রিপ্ট হওয়া ডেটা কী হিসাবে বিতরণ করে।

এই প্রশ্নের প্রতিক্রিয়াগুলিও পড়ার মতো হতে পারে


6
"কৌশলটি এমন একটি অ্যালগরিদম যা আপনি কেবল জানেন" - এটি অস্পষ্টতার দ্বারা সুরক্ষার সংজ্ঞা এবং সত্যিই একটি খারাপ ধারণা।
নিক জনসন 12

4
সমস্ত লাইসেন্সিং যদিও গোপনীয়তা জড়িত একটি অ্যালগরিদম দ্বারা হয়। "অবিচ্ছেদ্য" কীগুলি নিয়ে আসার অস্ত্রের চেয়ে বরং আইনজীবিদের বিনিয়োগের মাধ্যমে লাইসেন্সিংয়ের ক্ষেত্রে প্রায়শই সেরা যোগাযোগ করা হয়
রোল্যান্ড শ

আইনী মাধ্যমে লাইসেন্স প্রয়োগের বিষয়ে মন্তব্যের জন্য +1
রব

হ্যাঁ, সমস্ত লাইসেন্সিংও দুর্বল, ঠিক ডিআরএমের মতো। যদিও কোনও গোপন অ্যালগরিদমের উপর নির্ভর করা বোধ হয় দুর্বল
নিক জনসন

4
আমি একটি উত্তরের জন্য আপনাকে +1 দিয়েছি, এবং আশা করি আমি আপনাকে আরও একটি নীচে ভোট দিতে চাই। দুঃখজনকভাবে বিশ্বের বেশ কিছু অপরিণত ছোট বাচ্চা রয়েছে।
অধ্যাপক


0

আপনি না পরীক্ষা করতে LicenseSpot । এটি উপলব্ধ করা হয়:

  • ফ্রি লাইসেন্সিং উপাদান
  • অনলাইন অ্যাক্টিভেশন
  • আপনার অ্যাপ্লিকেশন এবং অনলাইন স্টোরকে সংহত করার জন্য এপিআই
  • ক্রমিক সংখ্যা প্রজন্ম
  • লাইসেন্স প্রত্যাহার করুন
  • সাবস্ক্রিপশন ম্যানেজমেন্ট

4
"ফ্রি" আসলেই নিখরচায় নয়। এটি আপনার অ্যাপ্লিকেশনটিতে লাইসেন্স উপাদান এম্বেড করার জন্য নিখরচায়; অ্যাপ্লিকেশনটির জন্য লাইসেন্সিং উপাদানটি ব্যবহার করা নিখরচায় নয় । 10 টি ক্রিয়াকলাপের বাইরে, আপনাকে একটি মাসিক ফি প্রদান করতে হবে। এটি প্রতি-অ্যাক্টিভেশন শতাংশ নয়। স্বল্প-ভলিউম স্বল্প মূল্যের। নেট অ্যাপ্লিকেশনগুলির জন্য, এই দামের মডেলটি অসুবিধে হতে চলেছে। এটি নেট অ্যাপগুলির জন্য অ্যাপল অ্যাপস্টোরের মতো নয়।
চিজো

0

আমি @ ফ্র্যাঙ্কোডোয়ারের দুর্দান্ত উত্তরে কিছুটা পিগিব্যাক করতে যাচ্ছি এবং অনলাইন-ভিত্তিক লাইসেন্সিংয়ের জন্য আরও গভীর গতিতে খনন করছি। আমি কীজেনের প্রতিষ্ঠাতা, বিকাশকারীদের জন্য নির্মিত একটি লাইসেন্সিং REST এপিআই।

যেহেতু আপনি আপনার আবেদনের জন্য 2 "ধরণের" লাইসেন্সের অর্থাত্ একটি "সম্পূর্ণ সংস্করণ" এবং "পরীক্ষামূলক সংস্করণ" চান বলে উল্লেখ করেছেন, তাই আমরা এটিকে আরও সহজ করে তুলতে পারি এবং যেখানে আপনি আপনার অ্যাপ্লিকেশনটির নির্দিষ্ট বৈশিষ্ট্যগুলি লাইসেন্স করেন সেখানে একটি বৈশিষ্ট্য লাইসেন্স মডেল ব্যবহার করতে পারি (এই ক্ষেত্রে, এখানে একটি "পূর্ণ" বৈশিষ্ট্য-সেট এবং একটি "ট্রায়াল" বৈশিষ্ট্য-সেট) রয়েছে।

শুরু করার জন্য, আমরা 2 লাইসেন্স ধরণের তৈরি করতে পারি ( কীজেনে নীতিমালা নামে পরিচিত ) এবং যখনই কোনও ব্যবহারকারী কোনও অ্যাকাউন্ট নিবন্ধন করে আপনি তাদের শুরু করার জন্য একটি "ট্রায়াল" লাইসেন্স তৈরি করতে পারেন ("ট্রায়াল" লাইসেন্সটি আমাদের "ট্রায়াল" বৈশিষ্ট্য নীতি প্রয়োগ করে ) যা আপনি অ্যাপের মধ্যে বিভিন্ন চেক করতে ব্যবহার করতে পারেন যেমন ব্যবহারকারীরা ট্রায়াল-ফিচার-এ এবং ট্রায়াল-ফিচার-বি ব্যবহার করতে পারেন ।

এবং এটির ভিত্তিতে, যখনই কোনও ব্যবহারকারী আপনার অ্যাপটি কিনেছেন (আপনি পেপাল, স্ট্রাইপ ইত্যাদি ব্যবহার করছেন), আপনি "পূর্ণ" বৈশিষ্ট্য নীতি প্রয়োগকারী একটি লাইসেন্স তৈরি করতে পারেন এবং এটি ব্যবহারকারীর অ্যাকাউন্টের সাথে সংযুক্ত করতে পারেন । এখন আপনার অ্যাপ্লিকেশনটির মধ্যে আপনি ব্যবহারকারীর প্রো-ফিচার-এক্স এবং প্রো-ফিচার-ওয়াই করতে পারেন ( এমন কোনও কিছু করে) কি "পূর্ণ" লাইসেন্স রয়েছে তা পরীক্ষা করতে পারেন user.HasLicenseFor(FEATURE_POLICY_ID)

আমি আপনার ব্যবহারকারীদের ব্যবহারকারী অ্যাকাউন্ট তৈরি করার অনুমতি দেওয়ার কথা উল্লেখ করেছি - এর অর্থ কী? আমি এই সম্পর্কে আরও কয়েকটি উত্তর নিয়ে বিস্তারিতভাবে গিয়েছি , তবে আমি কেন আপনার ব্যবহারকারীদের প্রমাণীকরণ ও সনাক্ত করার জন্য এটি সর্বোত্তম উপায় বলে মনে করি তাড়াতাড়ি রুনডাউন:

  1. ব্যবহারকারীর অ্যাকাউন্টগুলি আপনাকে একক ব্যবহারকারীর সাথে একাধিক লাইসেন্স এবং একাধিক মেশিন যুক্ত করতে দেয়, আপনাকে আপনার গ্রাহকের আচরণ সম্পর্কে অন্তর্দৃষ্টি দেয় এবং তাদেরকে "অ্যাপ্লিকেশন কেনার জন্য" অর্থাত্ আপনার "পূর্ণ" সংস্করণ (মোবাইল অ্যাপের মতো ধরণের) কেনার অনুরোধ জানায়
  2. দীর্ঘ গ্রাহকদের দীর্ঘ লাইসেন্স কীগুলি ইনপুট করার জন্য আমাদের গ্রাহকদের প্রয়োজন হবে না, যা উভয়ই ইনপুট দেওয়ার জন্য ক্লান্তিকর এবং ট্র্যাক রাখা শক্ত যেমন তারা সহজেই হারিয়ে যায়। (টুইটারে "হারিয়ে যাওয়া লাইসেন্স কী" অনুসন্ধান করার চেষ্টা করুন!)
  3. গ্রাহকরা একটি ইমেল / পাসওয়ার্ড ব্যবহার করতে অভ্যস্ত ; আমি মনে করি আমাদের লোকেরা যা করতে অভ্যস্ত তা করা উচিত যাতে আমরা একটি ভাল ব্যবহারকারীর অভিজ্ঞতা (ইউএক্স) সরবরাহ করতে পারি।

অবশ্যই, যদি আপনি ব্যবহারকারীর অ্যাকাউন্টগুলি পরিচালনা করতে না চান এবং আপনি আপনার ব্যবহারকারীদের লাইসেন্স কীগুলি ইনপুট করতে চান তবে এটি সম্পূর্ণ জরিমানা (এবং কীজেন সেটিও সমর্থন করে )। আমি লাইসেন্সের সেই দিকটি পরিচালনা করার জন্য আরও একটি উপায় দিচ্ছি এবং আশা করি আপনার গ্রাহকদের জন্য একটি সুন্দর ইউএক্স সরবরাহ করব।

অবশেষে যেহেতু আপনি এও উল্লেখ করেছেন যে আপনি এই লাইসেন্সগুলি বার্ষিক আপডেট করতে চান, আপনি আপনার নীতিগুলিতে একটি সময়সীমা নির্ধারণ করতে পারেন যাতে "পূর্ণ" লাইসেন্সগুলি এক বছরের পরে শেষ হবে এবং "ট্রায়াল" লাইসেন্সগুলি সর্বশেষে 2 সপ্তাহ বলে, আপনার ব্যবহারকারীরা একটি নতুন কেনার প্রয়োজন হয় মেয়াদ শেষ হওয়ার পরে লাইসেন্স।

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


0

দয়া করে এই উত্তরটি দেখুন: https://stackoverflow.com/a/38598174/1275924

ধারণাটি হ'ল ক্রিপটোলেন্সকে লাইসেন্স সার্ভার হিসাবে ব্যবহার করা । এখানে ধাপে ধাপে উদাহরণ রয়েছে (সি # এবং ভিবি.এনইটি তে)। আমি নীচে কী যাচাইয়ের জন্য একটি কোড স্নিপেট সংযুক্ত করেছি (সি # তে):

var licenseKey = "GEBNC-WZZJD-VJIHG-GCMVD";
var RSAPubKey = "{enter the RSA Public key here}";

var auth = "{access token with permission to access the activate method}";
var result = Key.Activate(token: auth, parameters: new ActivateModel()
{
    Key = licenseKey,
    ProductId = 3349,
    Sign = true,
    MachineCode = Helpers.GetMachineCode()
});

if (result == null || result.Result == ResultType.Error ||
    !result.LicenseKey.HasValidSignature(RSAPubKey).IsValid())
{
    // an error occurred or the key is invalid or it cannot be activated
    // (eg. the limit of activated devices was achieved)
    Console.WriteLine("The license does not work.");
}
else
{
    // everything went fine if we are here!
    Console.WriteLine("The license is valid!");
}

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