আমি পাইথন কোডটি কীভাবে সুরক্ষিত করব?


632

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

আমরা যদি .py ফাইল বা এমনকি .pyc ফাইলগুলি বিতরণ করি তবে লাইসেন্স ফাইলটি যাচাই করা কোডটি (ডিকম্পাইল এবং) সরানো সহজ হবে।

আরেকটি দিক হ'ল আমার নিয়োগকর্তা কোডটি আমাদের গ্রাহকদের দ্বারা পড়তে চান না, এই ভয়ে কোডটি চুরি হয়ে যেতে পারে বা কমপক্ষে "অভিনব ধারণা" থাকতে পারে।

এই সমস্যাটি হ্যান্ডেল করার কি কোনও ভাল উপায় আছে? সাধারণত একটি অফ-শেল্ফ সমাধান সহ।

সফ্টওয়্যারটি লিনাক্স সিস্টেমে চলবে (তাই আমি মনে করি না পাই 2 এক্সই কৌশলটি কাজ করবে)।


25
py2exe কেবল একটি .zip সংরক্ষণাগারে .pyc বাইট কোড ফাইলগুলি সঞ্চয় করে, সুতরাং এটি অবশ্যই সমাধান নয়। তবুও, এটি একটি কার্যকর স্টারআপ স্ক্রিপ্টের সাথে একত্রিত হয়ে এটি আনটার লিনাক্স চালানোর জন্য কার্যকর হতে পারে
বের

15
এটি পছন্দ করুন: stackoverflow.com/questions/15955948/…
কুকুর

এটি আপনার প্রশ্নের সর্বাধিক বিস্তৃত উত্তর: wiki.python.org/moin/Asking%20for
মাইক

উত্তর:


378

পাইথন, বাইট-কোড-সংকলিত বর্ণিত ভাষা হওয়ায় লক ডাউন করা খুব কঠিন is আপনি যদি পাই 2 এক্সির মতো কোনও এক্স -প্যাকেজার ব্যবহার করেন তবে এক্সিকিউটেবলের লেআউটটি সুপরিচিত এবং পাইথন বাইট-কোডগুলি ভালভাবে বোঝা যায়।

সাধারণত এরকম ক্ষেত্রে আপনাকে ট্রেড অফ করতে হবে। কোডটি সুরক্ষা করা কতটা গুরুত্বপূর্ণ? সেখানে কি সত্যিকারের গোপনীয়তা রয়েছে (যেমন ব্যাঙ্ক ট্রান্সফারগুলির প্রতিসম এনক্রিপশনের জন্য কী), বা আপনি কি কেবল বেহাল হয়ে যাচ্ছেন? এমন ভাষা চয়ন করুন যা আপনাকে সেরা পণ্য দ্রুততর বিকাশ করতে দেয় এবং আপনার অভিনব ধারণাটি কতটা মূল্যবান সে সম্পর্কে বাস্তববাদী হন।

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


157
এমনকি লাইসেন্স-চেকিং কোডটি ইঞ্জিনিয়ারের বিপরীত করা শক্ত ছিল কারণ এটি সিতে লেখা হয়েছিল, তবুও কি লাইসেন্স-চেকিং কোডের কলগুলি অপসারণ করা অপেক্ষাকৃত সহজ হবে না?
ব্লেয়ার কনরাড

59
হ্যাঁ, লাইসেন্স চেকটি কোথায় করা হয় তার উপর নির্ভর করে would যদি এক্সটেনশনে অনেক কল হয় তবে এটি মুছে ফেলা কঠিন হতে পারে। অথবা আপনি অ্যাপ্লিকেশনটির আরও কিছু গুরুত্বপূর্ণ অংশটিও লাইসেন্স চেকটিতে সরাতে পারেন যাতে এক্সটেনশনে কল সরিয়ে ফেলা অ্যাপ্লিকেশনটিকে বিকল করে দেয়।
নেড ব্যাচেল্ডার

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

11
@ ব্লেয়ার কনরাড: লাইসেন্স-চেকিং কোডটি কার্যকারিতাও আড়াল করে না। উদাহরণস্বরূপmylicensedfunction(licenseblob liblob, int foo, int bar, std::string bash)
ব্রায়ান

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

454

"এই সমস্যাটি পরিচালনা করার কোনও ভাল উপায় আছে কি?" বিপরীত প্রকৌশল থেকে কোনও কিছুই রক্ষা করা যায় না। এমনকি ডিভিডি মেশিনে ফার্মওয়্যারটি বিপরীত ইঞ্জিনিয়ারড এবং এএএসএস এনক্রিপশন কী উন্মুক্ত করা হয়েছে। এবং এটি ডিএমসিএ সত্ত্বেও এটি একটি অপরাধমূলক অপরাধ।

যেহেতু কোনও প্রযুক্তিগত পদ্ধতি আপনার গ্রাহকদের আপনার কোড পড়া থেকে বিরত রাখতে পারে না, তাই আপনাকে সাধারণ বাণিজ্যিক পদ্ধতি প্রয়োগ করতে হবে।

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

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

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

  4. এত আকর্ষণীয় হারে কাস্টমাইজেশন অফার করুন যাতে তারা আপনাকে উন্নতকরণগুলি তৈরি এবং সহায়তা করার পরিবর্তে অর্থ প্রদান করে।

  5. মেয়াদ উত্তীর্ণ হওয়া লাইসেন্স কী ব্যবহার করুন। এটি নিষ্ঠুর, এবং আপনাকে একটি খারাপ খ্যাতি দেবে, তবে এটি অবশ্যই আপনার সফ্টওয়্যারটির কাজ করা বন্ধ করে দেয়।

  6. এটি একটি ওয়েব পরিষেবা হিসাবে অফার করুন। সাএস গ্রাহকদের জন্য কোনও ডাউনলোড জড়িত না।


7
পয়েন্ট 2 আরও গুরুত্বপূর্ণ। যদি এটি রিভার্স ইঞ্জিনিয়ারিং, এবং বার্ষিক আপডেটগুলির চেয়ে কম সস্তা হয় তবে কেউ চেষ্টা করবে না এবং এটি করা হলেও, সফ্টওয়্যার সরবরাহকারীর পরিবর্তে কেউ হ্যাকার প্রদান করবে না।
এম 3 এন্ড

সেটা সত্য. বিপরীত ইঞ্জিনিয়ারিং করণীয় তবে বেশিরভাগ পরিস্থিতিতে ব্যয়বহুল। @ এস.লট, আমি বিশ্বাস করি point দফা প্রশ্নের উপর ভিত্তি করে আরও বেশি গুরুত্ব দেয়। যদি উত্স কোডটি সত্যই সুরক্ষিত করা দরকার তবে এটি শেষ ব্যবহারকারী থেকে দূরবর্তী হওয়া উচিত।
assetCorp

7
প্রশ্ন: "আমাদের ঘুমের মধ্যে অনুপ্রবেশকারীরা খুন হওয়ার হাত থেকে আমার পরিবার এবং নিজেকে রক্ষা করার জন্য কি কোনও ভাল উপায় আছে?" ইন্টারনেট: "না। কারও সাথে আয় করা যায় এবং কোনও বাসস্থান কখনও শতভাগ দুর্ভেদ্য হয় না A একটি নশ্বর মানব পরিবারই এই কাজের ভুল উপায় tool"
একটি সাধারণ অ্যালগরিদম

পয়েন্ট 5 একই ধারনাতে প্রয়োগ করা যায়নি যে এটি বিপরীত ইঞ্জিনিয়ার এবং ক্র্যাক হতে পারে।
jjmontes

314

পাইথন আপনার প্রয়োজনীয় সরঞ্জাম নয়

সঠিক কাজটি করার জন্য আপনাকে অবশ্যই সঠিক সরঞ্জামটি ব্যবহার করতে হবে এবং পাইথনকে অবহেলা করার জন্য ডিজাইন করা হয়নি। এটি বিপরীত; পাইথনে সবকিছুই উন্মুক্ত বা সহজে প্রকাশ বা পরিবর্তন করা যায় কারণ এটাই ভাষার দর্শনের's

আপনি যদি এমন কিছু চান যা আপনি দেখতে পাচ্ছেন না তবে অন্য একটি সরঞ্জামের সন্ধান করুন। এটি কোনও খারাপ জিনিস নয়, এটি গুরুত্বপূর্ণ যে বিভিন্ন ব্যবহারের জন্য বিভিন্ন আলাদা সরঞ্জাম বিদ্যমান।

উদ্বিগ্নতা সত্যিই কঠিন

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

আইনী প্রয়োজনীয়তা থাকা ভাল উপায়

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

কোড সুরক্ষা overrated হয়

আজকাল, ব্যবসায়ের মডেলগুলি পণ্যগুলির পরিবর্তে পরিষেবা বিক্রয় করতে ঝোঁক। আপনি কোনও পরিষেবা অনুলিপি করতে পারেন না, জলদস্যু বা চুরি করতে পারবেন না। প্রবাহের সাথে যেতে ভেবে দেখার সময় এখন হতে পারে ...


16
পাইথন আপনার প্রয়োজনীয় সরঞ্জাম নয়। মালবোল্জ হ'ল। :)
jhndodo

7
ভাল উত্তর, কিন্তু "নৈমিত্তিক আইনী সমস্যা"? সত্যি? নৈমিত্তিক যে কোনও আইনি সমস্যা রয়েছে তা আপনি কোথায় থাকেন ?
মার্ক ই। হাজেস

1
আমি মনে করি, যদি আমাদের একটি ফ্রিকোয়েন্সি থাকে - তবে কতটা ব্যয়বহুল অবস্ফুট কোড হ্যাক হয় - আমরা পাইথন এবং অবলম্বন কোড ব্যবহারের অনুশীলন সম্পর্কে বলতে পারি।
sergzach

যদি আপনার কোডটিতে আকর্ষণীয় বৈশিষ্ট্য থাকে তবে যিনি এটির অপব্যবহার করতে সক্ষম হলেন সে এটি আবার বিতরণ করবে @ ম্যাক
এ্যাসেটকর্প

বিশ্বে আপনি কীভাবে "কেউ যদি সহজেই আবিষ্কার করেন"?
Make42

145

অজগর সংকলন এবং বাইনারি বিতরণ!

বোধগম্য ধারণা:

ব্যবহারের Cython , Nuitka , স্কিন বর্ষণ বা C কোড কম্পাইল পাইথন অনুরূপ কিছু, তারপর পাইথন বাইনারি লাইব্রেরি (pyd) পরিবর্তে হিসাবে আপনার অ্যাপ বিতরণ করুন।

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

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

দেখুন এই ব্লগে কিভাবে এটা করবেন উপর একটি টিউটোরিয়াল জন্য (আমার দ্বারা নয়)। (THX @ হিটওয়েন)

ক্রেজি ধারণা:

আপনি সম্ভবত সাইথনকে প্রতিটি মডিউলের জন্য পৃথকভাবে সি-ফাইলগুলি সঞ্চয় করতে পারাতে পারেন, তারপরে এগুলি সমস্তকে সম্মতি জানাতে এবং ভারী ইনলাইনিং দিয়ে এগুলি তৈরি করতে পারেন। এইভাবে, আপনার পাইথন মডিউলটি বেশ মনোলিথিক এবং সাধারণ সরঞ্জামগুলির সাথে চিপ করা শক্ত।

পাগল ছাড়িয়ে:

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


অজগর 3.4 জ্যাঙ্গো অ্যাপ্লিকেশন দিয়ে সিথন কাজের সাথে সংকলন করবে, নাকি বিশাল পরিশ্রম ছাড়াই কাজ করা যায়?
ড্যানিয়েল

@ ড্যানিয়েল: নিশ্চিত নয় জ্যাঙ্গোতে চেষ্টা করা হয়নি। সে সম্পর্কে একটি নতুন প্রশ্ন পোস্ট করুন নির্দ্বিধায়।
ম্যাক


4
@ এমএলভিএলজার এফডাব্লুআইডাব্লু, আইএমএইচও বাইনারিগুলির সাথে সংকলন করা আপনার সমস্ত গোপনীয়তা বিক্রি এবং এনএসএ-শ্রেণির বিপরীত প্রকৌশল থেকে রক্ষা করার চেষ্টা করার মধ্যে একটি দুর্দান্ত বাণিজ্য। এসপি যদি আপনার একটি বড় অজগর কোড বেজ থাকে এবং কারণগুলি ভৌত ​​হতে পারে। ;)
ম্যাক

2
হিথওয়ের পোষ্টটি এখন অবৈধ।
কিউজি_জাভা_17137

58

আমি বুঝতে পারি যে আপনি চান আপনার গ্রাহকরা পাইথনের শক্তি ব্যবহার করুন তবে উত্স কোডটি প্রকাশ করতে চান না।

আমার পরামর্শ হচ্ছে:

(ক) কোডের গুরুতর টুকরোটি সি বা সি ++ গ্রন্থাগার হিসাবে লিখুন এবং তারপরে সিআইপি বা সুইগ ব্যবহার করে সি / সি ++ এপিআইগুলি পাইথন নেমস্পেসে প্রকাশ করতে পারেন।

(খ) পাইথনের পরিবর্তে সিথন ব্যবহার করুন

(গ) উভয় (ক) এবং (খ), পাইথন ইন্টারফেস সহ লাইব্রেরিগুলিকে লাইসেন্সযুক্ত বাইনারি হিসাবে বিতরণ করা উচিত।


1
একই শিরাতে অন্যান্য সম্ভাবনা: শেড স্কিন কোড. google.google.com/p/shedskin এবং নুইটকা kayhayen24x7.homelinux.org/blog/nuitka-a-python-compiler
ট্রাইপ্যাই

টাইপাইপাইয়ের পরামর্শ অনুসারে আমি শেড স্কিনের উপরে একবার নজর দিয়েছি এবং এটি সত্যই ভাল জিনিস হিসাবে উপস্থিত বলে মনে হচ্ছে!
ফিলিপ

34

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

[সম্পাদনা] নিকের মন্তব্যের জবাব:

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

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

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

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

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


যদি তারা গ্রাহকদের কাছে সফ্টওয়্যার প্রকাশ করে এবং গ্রাহক এটিকে পুনরায় প্রকাশ না করে অভ্যন্তরীণভাবে এটি পরিবর্তন করে?
নিক টি

@ নিক: পরিস্থিতি কোনওভাবেই পরিবর্তন করে না। আমার সম্পাদনা দেখুন।
অ্যারন ডিজুল্লা

6
ফিরে আইডিয়া চুরি করার জন্য +1। আপনার ক্লায়েন্ট পরিবেশন করার ক্ষমতা কেন আপনার অভ্যন্তরীণ সমাধানগুলিতে সীমাবদ্ধ রাখুন, যখন আপনি দেখতে পান যে অন্যরা কীভাবে আপনার সমাধানে উন্নতি করে এবং ততক্ষণে আপনার নিজের পণ্যটিকে উন্নত করে? "আপনার কাছে যদি একটি আপেল থাকে এবং আমার কাছে একটি আপেল থাকে এবং আমরা এই আপেলগুলি বিনিময় করি তবে আপনি এবং আমি এখনও প্রত্যেকের কাছে একটি করে আপেল থাকবে But তবে আপনার যদি ধারণা থাকে এবং আমার একটি ধারণা আছে এবং আমরা এই ধারণাগুলি বিনিময় করি, তবে আমাদের প্রত্যেকেরই থাকবে দুটি ধারণা। "
জর্দান

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

1
@ স্ক্যান্ডিক্স ঠিক কিভাবে কাজ করবে? ইন্টারনেটে আপনার কাজ আপলোড করা আপনার ক্ষতি করে না। এটি আপনাকে ক্ষতি করতে শুরু করবে যদি অনেক লোক এটি খুঁজে পায় এবং তার পরিবর্তে এই লোকেরা গ্রাহকদের অর্থ প্রদান করে। কোড চুরি একটি পৌরাণিক কাহিনী। "আমার জ্ঞানটি নিখরচায়, আমার সময় ব্যয়বহুল" (কে তা বলেছে তা নিশ্চিত নয়)।
অ্যারন দিগুল্লা

34

আপনি কি পাইমিনিফায়ার দেখেছেন ? এটি পাইথন কোডটি মিনিফাইজ, অবলম্বন এবং সংকোচন করে। ক্যাজুয়াল রিভার্স ইঞ্জিনিয়ারিংয়ের জন্য উদাহরণ কোডটি বেশ খারাপ লাগছে।

$ pyminifier --nonlatin --replacement-length=50 /tmp/tumult.py
#!/usr/bin/env python3
ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲמּ=ImportError
ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ燱=print
ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ巡=False
ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ澨=object
try:
 import demiurgic
except ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲמּ:
 ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ燱("Warning: You're not demiurgic. Actually, I think that's normal.")
try:
 import mystificate
except ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲמּ:
 ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ燱("Warning: Dark voodoo may be unreliable.")
ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲﺬ=ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ巡
class ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ𐦚(ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ澨):
 def __init__(self,*args,**kwargs):
  pass
 def ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ클(self,dactyl):
  ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ퐐=demiurgic.palpitation(dactyl)
  ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ𠛲=mystificate.dark_voodoo(ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ퐐)
  return ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ𠛲
 def ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ𐠯(self,whatever):
  ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ燱(whatever)
if __name__=="__main__":
 ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ燱("Forming...")
 ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲﺃ=ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ𐦚("epicaricacy","perseverate")
 ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲﺃ.ﺭ异𞸐𐤔ﭞﰣﺁں𝕌𨿩𞸇뻛𐬑𥰫嬭ﱌ𢽁𐡆𧪮Ꝫﴹ뙫𢤴퉊ﳦﲣפּܟﺶ𐐤ﶨࠔ𐰷𢡶𧐎𐭈𞸏𢢘𦘼ﶻ𩏃𦽨𞺎𠛘𐠲䉊ﰸﭳᣲ𐠯("Codswallop")
# Created by pyminifier (https://github.com/liftoff/pyminifier)

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

এই প্যাকেজটি কেবলমাত্র সম্পন্ন করতে পরিচালিত হ'ল কোডটি অবলম্বন করা 'অবফসেক্টর' বোকা বানাবে।
মার্ক্রক্সর

আমি চেষ্টা করার সময় এটি ত্রুটি তৈরি করছিল। আমি মনে করি এটি ডেটা ভুলভাবে ছড়িয়েছে, এবং এটি পুরোপুরি রূপান্তরিত করে না।
ভিকারোবট

পুরো প্রকল্প, বা টেমপ্লেট ইঞ্জিনের জন্য কাজ করে না কারণ এটি টেমপ্লেটে প্রদর্শন করতে পরিবর্তনশীল নামের প্রয়োজন
টমসওয়ায়ার

25

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

পরিবর্তে, অনেক পোস্টার উল্লিখিত হিসাবে এটি তৈরি:

  • বিপরীত ইঞ্জিনিয়ারিং সময় মূল্য নয় (আপনার সফ্টওয়্যার এত ভাল, এটি অর্থ প্রদান করে তোলে)
  • তাদের একটি চুক্তিতে স্বাক্ষর করুন এবং সম্ভব হলে লাইসেন্স অডিট করুন।

বিকল্প হিসাবে, কিক-গাধা পাইথন আইডিই উইংআইডি যেমন করে: কোডটি ছেড়ে দিন । ঠিক আছে, কোডটি দূরে দিন এবং লোকেরা আপগ্রেড এবং সহায়তার জন্য ফিরে আসুক।


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

তবে, আপগ্রেডগুলিও কেবল গতি-উপায়ে ... তাই তারা কীভাবে এর জন্য চার্জ নেবে? এটা কি শুধু সমর্থন হবে না?
Make42

উইংআইডিআই বিজনেস মডেল সম্পর্কিত: সহায়তা একটি পরিষেবা, সফটওয়্যার একটি পণ্য। পণ্য স্কেল, পরিষেবা না। সমর্থন যদি অন্য কোনও ব্যবসায়ের মডেল না থাকে তবে সমর্থনটি কেবলমাত্র একটি ভাল ব্যবসায়ের মডেল - যার অর্থ, যদি কেউ আপনার পণ্যটি (যে কারণেই না কেন) কিনে না দেয় তবে আপনি পণ্যটি সরিয়ে দেন, যাতে আপনার গ্রাহক বেস থাকে যা অন্তত আপনার পরিষেবা কিনে।
Make 42

20

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

আমি পাইথন প্রকল্পের জন্য কীভাবে সিথন সেট আপ করতে পারি সে সম্পর্কে একটি বিস্তারিত নিবন্ধ লিখেছি, এটি পরীক্ষা করে দেখুন:

সিথনের সাহায্যে পাইথন উত্সগুলি রক্ষা করা


19

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


হ্যাঁ, তবে আপনি যদি সেই সঠিক পাইথন সংস্করণটি আপনার অবচিত কোডের সাথে বিতরণ করেন তবে তা নয়।
অ্যালেক্স

17

কিছু পরিস্থিতিতে আপনার সফ্টওয়্যারটির (সমস্ত, বা কমপক্ষে একটি মূল অংশ) আপনার সংস্থা হোস্ট করা একটি ওয়েব পরিষেবাতে স্থানান্তরিত করা সম্ভব হতে পারে।

এইভাবে, লাইসেন্স চেকগুলি আপনার নিজের সার্ভার রুমের সুরক্ষায় সম্পাদন করা যেতে পারে।


+1 (0-এ ফিরে): এটিকে একটি পদ্ধতির জন্য ব্যবহারিক বলে মনে করে সমস্যার একমাত্র আসল সমাধান বলে মনে হয়।
intuited

10
সতর্কতা অবলম্বন করুন যে আপনার লাইসেন্সিং ওয়েবসভারটি যদি নিচে চলে যায় বা গ্রাহকদের ইন্টারনেট অ্যাক্সেস হ্রাস পায় তবে আপনার গ্রাহক খুশি হবেন না যে লাইসেন্সিং চেকগুলিতে অ্যাক্সেস নষ্ট হওয়ার কারণে তারা তাদের ব্যবসা চালাতে পারবেন না।
দেবপ্লেয়ার

1
@ ডেভপ্লেয়ার এর সমাধান রয়েছে। আপনি একটি স্থানীয় কী প্রক্রিয়া প্রয়োগ করতে পারেন যা সফ্টওয়্যার দূরবর্তী লাইসেন্স সার্ভারে পৌঁছাতে না পারলে অস্থায়ী অ্যাক্সেসের অনুমতি দেয়।
জেফ্রি

1
@ জেফ্রি: এটি আপনাকে ঠিক যেখানে শুরু করেছিলেন সেখানে পৌঁছে দেয় - কীভাবে আপনি এই কোডটি সুরক্ষা পাবেন। আরও নিরাপদ হওয়ার জন্য আপনার নিজের সার্ভারে কিছু মূল কার্যকারিতা রাখা দরকার, সুতরাং এটির পরিবর্তে যথেষ্ট পরিশ্রম জড়িত হবে (কোন মুহূর্তে, কেবল একটি মুক্ত উত্স প্রতিযোগী কেন শুরু করবেন না?)
অডডিংকিং

14

যদিও কোনও নিখুঁত সমাধান নেই, নিম্নলিখিতটি করা যেতে পারে:

  1. একটি প্রাথমিক গ্রন্থাগারে স্টার্টআপ কোডের কিছু সমালোচনামূলক অংশটি সরান।
  2. নেটিভ লাইব্রেরিতে লাইসেন্স চেক প্রয়োগ করুন।

যদি স্থানীয় কোডটিতে কলটি সরিয়ে ফেলা হয় তবে প্রোগ্রামটি যাইহোক শুরু হবে না। যদি এটি অপসারণ না করা হয় তবে লাইসেন্সটি কার্যকর করা হবে।

যদিও এটি কোনও ক্রস-প্ল্যাটফর্ম বা খাঁটি পাইথন সমাধান নয়, এটি কাজ করবে।


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

8
তাই? আপনার লাইসেন্সটিতে স্বাক্ষর করতে আরএসএ ব্যবহার করুন এবং তাদের প্রাইভেট কীটি জোর করে চাপিয়ে দিন, বলুন 1024 বিট নিয়ে। এটি সম্ভব, তবে অনেক সময় লাগে ... এবং এইভাবে - অর্থ।
অবগান

12

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

সুতরাং পাইথন উত্সটি পরিবর্তনযোগ্য নয় তবে * .pyc ফাইলগুলির ফাইল এক্সটেনশানগুলি আলাদা এবং অপশন কোডগুলি পাবলিক পাইথন.এক্সি ইন্টারপ্রেটারের সাথে মেলে না। আপনি গেমস ডেটা ফাইলগুলি পরীক্ষা করে থাকলে সমস্ত ডেথ পাইথন উত্স ফর্ম্যাটে।

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

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

ওপি 234 সোর্স লাইনের জন্য "# কপিরাইট আমি এটি লিখেছি" বা সেই লাইনটি ওপ কোডগুলিতে সংকলন করে যা "যদি মিথ্যা:" "# কপিরাইট" অনুপস্থিত থাকে তার সমান equivalent মূলত কিছু অস্পষ্ট কারণ বলে মনে হচ্ছে এর জন্য কোডের পুরো ব্লকটি অক্ষম করা।

একটি ব্যবহারের ক্ষেত্রে যেখানে কোনও সংশোধিত দোভাষীকে পুনরায় সংশ্লেষ করা সম্ভব হতে পারে আপনি যেখানে অ্যাপটি লেখেন নি, অ্যাপটি বড়, তবে এটির সুরক্ষার জন্য আপনাকে অর্থ প্রদান করা হয়, যেমন আপনি যখন কোনও আর্থিক অ্যাপ্লিকেশনের জন্য ডেডিকেটেড সার্ভার প্রশাসক হন।

উত্সটি ছেড়ে যাওয়া বা চোখের বাচ্চার জন্য ওপকোডগুলি খোলা রেখে কিছুটা পরস্পরবিরোধী বলে মনে করি তবে নেটওয়ার্ক ট্র্যাফিকের জন্য এসএসএল ব্যবহার করি। এসএসএলও 100% নিরাপদ নয়। তবে এটি বেশিরভাগ চোখ পড়তে বাধা দেওয়ার জন্য ব্যবহৃত হয়। একটি সামান্য বিট সাবধানতা বোধগম্য।

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


11

কোডটি সুরক্ষিত করার একমাত্র নির্ভরযোগ্য উপায় হ'ল এটি নিয়ন্ত্রণ করে এমন কোনও সার্ভারে চালানো এবং আপনার ক্লায়েন্টকে এমন ক্লায়েন্ট সরবরাহ করা যা সেই সার্ভারের সাথে ইন্টারফেস করে।


10

পাইকনক্রিট না দেখে আমি অবাক হয়ে গেলাম কোনও উত্তরে । কারণ এটি প্রশ্নের চেয়ে নতুন?

এটি আপনার প্রয়োজন ঠিক ঠিক হতে পারে (এডি)।

কোডটি অবলম্বন করার পরিবর্তে এটি এটিকে এনক্রিপ্ট করে এবং লোডের সময় ডিক্রিপ্ট করে।

পাইপি পৃষ্ঠা থেকে :

পাইথন স্ক্রিপ্ট কাজের প্রবাহ রক্ষা করুন

  • your_script.py import pyconcrete
  • পাইকনক্রিট আমদানি মডিউল হুক করবে
  • যখন আপনার স্ক্রিপ্টটি আমদানি না MODULE, pyconcrete আমদানি হুক খুঁজে পেতে চেষ্টা করবে MODULE.pyeপ্রথম এবং তারপর ডিক্রিপ্ট MODULE.pyeমাধ্যমে _pyconcrete.pydএবং decrypted ডেটা চালানো (.pyc বিষয়বস্তু হিসেবে)
  • এনক্রিপ্ট এবং ডিক্রিপ্ট গোপন কী রেকর্ডে _pyconcrete.pyd (ডিএলএল বা এসও এর মতো) গোপন কীটি বাইনারি কোডে লুকানো থাকবে, এটি সরাসরি এইচএক্স ভিউতে দেখতে পাবে না

9

যারা ক্লায়েন্ট মধ্যে নির্ভর করে, একটি সহজ সুরক্ষা প্রক্রিয়া, একটি যুক্তিসম্মত লাইসেন্স চুক্তি সঙ্গে মিলিত হতে হবে পর্যন্ত কোনও জটিল লাইসেন্সিং / এনক্রিপশন / অবফেসেশন সিস্টেমের চেয়ে বেশি কার্যকর ।

সর্বোত্তম সমাধানটি হ'ল কোডটি পরিষেবা হিসাবে বিক্রয় করা, পরিষেবাটি হোস্টিং করে বলা বা সহায়তা দেওয়া - যদিও তা সর্বদা ব্যবহারিক নয়।

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

আপনার কোডটি যথাসম্ভব ব্যবহারে দুর্দান্ত করার বিষয়ে মনোনিবেশ করুন - সুখী গ্রাহকরা থাকায় কিছু তাত্ত্বিক জলদস্যুতা রোধ করার চেয়ে আপনার কোম্পানিকে আরও বেশি অর্থোপার্জন করা হবে ..


8

আপনার কোডটি চুরি করা আরও শক্ত করে তোলার আরেকটি প্রচেষ্টা হ'ল জাইথন ​​ব্যবহার করা এবং তারপরে জাভা অবফেসেক্টর ব্যবহার করা ।

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

জাইথনের একমাত্র সমস্যা হ'ল আপনি সি-তে লেখা পাইথন মডিউলগুলি ব্যবহার করতে পারবেন না।


6

গুরুত্বপূর্ণ কোডগুলি হ্যাশ করে এবং স্বাক্ষর করে এবং এটি কী কী জনসাধারণ কী পদ্ধতিতে পরীক্ষা করে স্ট্যান্ডার্ড এনক্রিপশন স্কিমগুলির সাথে আপনার কোড সাইন ইন করার বিষয়ে?

এইভাবে আপনি প্রতিটি গ্রাহকের জন্য সর্বজনীন কী সহ লাইসেন্স ফাইলটি দিতে পারেন।

অতিরিক্ত তোমার মত একটি পাইথন obfuscator ব্যবহার করতে পারেন এই এক (শুধু এটা googled)।


1
+1 স্বাক্ষর জন্য; ওফাসকেটরের জন্য -1 আপনি কমপক্ষে কোডটি পরিবর্তন হওয়া থেকে রোধ করতে পারেন।
আলী আফশার

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

হ্যাঁ, অ পাইথন-এ বুটস্ট্র্যাপ করুন।
আলী আফশার

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

6

লিনাক্স সহ তাদের ক্লায়েন্ট সফটওয়্যারগুলির জন্য getDPbox.com এ থাকা ছেলেরা কীভাবে এটি করে তা আপনার একবার নজর দেওয়া উচিত। এটি ক্র্যাক করা বেশ জটিল এবং সুরক্ষা প্রক্রিয়াটি অতীতের জন্য পেতে বেশ কিছু সৃজনশীল ডিসঅ্যাসাব্যাস প্রয়োজন।


8
তবে অতীতটি অর্জিত হওয়ার অর্থ এই যে তারা ব্যর্থ হয়েছে - নীচের অংশটি কেবল চেষ্টা করে দেখেনি, তবে আইনী সুরক্ষার জন্য যেতে হবে।
চি চি

এই সুরক্ষা ব্যবস্থাগুলি কীভাবে পাস করবেন সে সম্পর্কে কোনও তথ্য প্রকাশিত আছে?
মিতার

6

পাইথনের সাথে আপনি যা করতে পারেন তা হ'ল বিষয়গুলিকে অস্পষ্ট করা।

  • সমস্ত ডকাস্ট্রিং স্ট্রিপ আউট
  • কেবল .pyc সংকলিত ফাইল বিতরণ করুন।
  • এটি হিমশীতল
  • আপনার ধ্রুবকগুলিকে ক্লাস / মডিউলের মধ্যে অস্পষ্ট করুন যাতে সহায়তা (কনফিগারেশন) সমস্ত কিছু না দেখায়

আপনি এর কিছু অংশ এনক্রিপ্ট করে এবং উড়তে ডিক্রিপ্ট করে এবং এটি () এর কাছে দিয়ে কিছু অতিরিক্ত অস্পষ্টতা যোগ করতে সক্ষম হতে পারেন। তবে আপনি যে কাউকেই তা ভেঙে ফেলতে পারেন না।

এর কোনওটিই স্থির আক্রমণকারীকে বাইকোড বিচ্ছিন্ন করা বা আপনার এপিআই দিয়ে সাহায্য, দির ইত্যাদির মাধ্যমে খনন করা থেকে বিরত থাকবে না


5

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

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

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

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

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

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


4

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

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

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

এটি সব নেমে আসে ট্রেড অফে। এক প্রান্তে অজগরটিতে আপনার সফ্টওয়্যার বিকাশ সহজতর হয়েছে, যার মধ্যে গোপনীয়তা লুকানোও খুব কঠিন is অন্য প্রান্তে আপনার কাছে এসেম্বলারে লেখা সফ্টওয়্যার রয়েছে যা লেখার পক্ষে আরও শক্ত, তবে গোপনীয় বিষয়গুলি গোপন রাখা আরও সহজ।

আপনার বসকে সেই ধারাবাহিকতায় কোথাও একটি পয়েন্ট বেছে নিতে হবে যা তার প্রয়োজনীয়তা সমর্থন করে supports এবং তারপরে তাকে আপনাকে সরঞ্জাম এবং সময় দিতে হবে যাতে আপনি যা চান তা তৈরি করতে পারেন। তবে আমার বাজি হ'ল তিনি সম্ভাব্য আর্থিক ক্ষতির বিপরীতে সত্যিকারের উন্নয়ন ব্যয়কে আপত্তি করবেন।


4

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

  1. আপনার উত্স কোডটি এনক্রিপ্ট করুন
  2. আমদানি করার সময় আপনার কোড ডিক্রিপ্ট করতে আপনার নিজের পাইথন মডিউল লোডার লিখুন
  3. সি / সি ++ এ মডিউল লোডার প্রয়োগ করুন
  4. আপনি মডিউল লোডারটিতে আরও বৈশিষ্ট্য যুক্ত করতে পারেন, উদাহরণস্বরূপ অ্যান্টি-ডিবাগার, লাইসেন্স নিয়ন্ত্রণ, হার্ডওয়্যার ফিঙ্গারপ্রিন্ট বাঁধাই ইত্যাদি

আরও বিশদের জন্য এই উত্তরটি দেখুন

আপনি যদি বিষয়টিতে আগ্রহী হন তবে এই প্রকল্পটি আপনাকে সহায়তা করবে - পাইপ্রোটেক্ট


3

কোনও সি লঞ্চারের জন্য ক্রিপ্টযুক্ত সংস্থায় পাইপেক্স এক্স বাইট-কোড থাকা সম্ভব যা এটি স্মৃতিতে লোড করে এবং কার্যকর করে। এখানে এবং এখানে কিছু ধারণা ।

কেউ কেউ বিপরীত প্রকৌশলকে ব্যয়বহুল করার জন্য একটি স্ব-পরিবর্তনকারী প্রোগ্রামের কথাও ভাবেন ।

আপনি ডিবাগারগুলি রোধ করার জন্য টিউটোরিয়ালও খুঁজে পেতে পারেন, ডিসসেমব্লারকে ব্যর্থ করতে পারেন, মিথ্যা ডিবাগার ব্রেকপয়েন্ট সেট করে এবং আপনার কোডকে চেকসাম দিয়ে সুরক্ষিত করতে পারেন। আরও লিঙ্কগুলির জন্য ["ক্রিপ্টেড কোড" এক্সিকিউট "মেমরিতে"] অনুসন্ধান করুন।

তবে অন্যরা ইতিমধ্যে বলেছে, যদি আপনার কোডটি মূল্যবান হয় তবে বিপরীত প্রকৌশলীরা শেষ পর্যন্ত সফল হবে।


3

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

গিটহাবের ওপেন-সোর্স লাইব্রেরি রয়েছে যা আপনাকে লাইসেন্স যাচাইকরণ সহায়তা করতে পারে।

আপনি এটি দ্বারা ইনস্টল করতে পারেন pip install licensingএবং তারপরে নিম্নলিখিত কোডটি যুক্ত করতে পারেন :

pubKey = "<RSAKeyValue><Modulus>sGbvxwdlDbqFXOMlVUnAF5ew0t0WpPW7rFpI5jHQOFkht/326dvh7t74RYeMpjy357NljouhpTLA3a6idnn4j6c3jmPWBkjZndGsPL4Bqm+fwE48nKpGPjkj4q/yzT4tHXBTyvaBjA8bVoCTnu+LiC4XEaLZRThGzIn5KQXKCigg6tQRy0GXE13XYFVz/x1mjFbT9/7dS8p85n8BuwlY5JvuBIQkKhuCNFfrUxBWyu87CFnXWjIupCD2VO/GbxaCvzrRjLZjAngLCMtZbYBALksqGPgTUN7ZM24XbPWyLtKPaXF2i4XRR9u6eTj5BfnLbKAU5PIVfjIS+vNYYogteQ==</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"

res = Key.activate(token="WyIyNTU1IiwiRjdZZTB4RmtuTVcrQlNqcSszbmFMMHB3aWFJTlBsWW1Mbm9raVFyRyJd",\
                   rsa_pub_key=pubKey,\
                   product_id=3349, key="ICVLD-VVSZR-ZTICT-YKGXL", machine_code=Helpers.GetMachineCode())

if res[0] == None not Helpers.IsOnRightMachine(res[0]):
    print("An error occured: {0}".format(res[1]))
else:
    print("Success")

আরএসএ পাবলিক কী ইত্যাদি কীভাবে এখানে কনফিগার করা হয়েছে সে সম্পর্কে আপনি আরও পড়তে পারেন ।


2

সি / সি ++ এর বাইনারি ফাইলটি সুরক্ষার জন্য একইভাবে ব্যবহার করুন, অর্থাৎ প্রতিটি ফাংশন বডি এক্সিকিউটেবল বা লাইব্রেরি বাইনারি ফাইলগুলিতে নিবিষ্ট করুন, প্রতিটি ফাংশন প্রবেশের শুরুতে একটি নির্দেশ "জাম্প" সন্নিবেশ করুন, অপ্রকাশিত কোডটি পুনরুদ্ধার করতে বিশেষ ফাংশনে যান to বাইট-কোড পাইথন স্ক্রিপ্টের বাইনারি কোড, তাই

  • প্রথমে কোড অবজেক্টে পাইথন স্ক্রিপ্ট সংকলন করুন
  • তারপরে প্রতিটি কোড অবজেক্টকে পুনরাবৃত্তি করুন, প্রতিটি কোড অবজেক্টের নিম্নলিখিত হিসাবে কো-কোড করুন
    0 JUMP_ABSOLUTE n = 3 + লেন (বাইকোড)

    3
    ...
    ... এখানে এটি বাইকোডে অবরুদ্ধ
    ...

    n LOAD_GLOBAL? (__Pyarmor__)
    n + 3 CALL_FUNCTION 0
    n + 6 POP_TOP
    n + 7 JUMP_ABSOLUTE 0
  • অপ্রচলিত কোড অবজেক্টটিকে .pyc বা .pyo ফাইল হিসাবে সংরক্ষণ করুন

এই কোড অবজেক্টটিকে প্রথমবার বলা হলে সেই অজানা ফাইল (.pyc বা .pyo) সাধারণ পাইথন ইন্টারপ্রেটার ব্যবহার করতে পারেন

  • প্রথম বিকল্পটি JUMP_ABSOLUTE, এটি অফসেট এন-তে লাফিয়ে যাবে

  • অফসেট এন এ, নির্দেশটি হল একটি পাইসিফিউশনকে কল করতে call এই ফাংশনটি অফসেট 3 এবং n এর মধ্যে সেই অবরুদ্ধ বাইকোডকে পুনরুদ্ধার করবে এবং আসল বাইট কোডটি অফসেটে স্থাপন করবে। অবরুদ্ধ কোডটি নিম্নলিখিত কোডের মাধ্যমে পাওয়া যাবে

        চর * ওফুকেটেড_বাইটেকোড;
        পাই_সাইজ_টি লেন;
        পাইফ্রেমওজেক্ট * ফ্রেম = পাইএভাল_গেটফ্রেম ();
        পাইকোডবজেক্ট * f_code = ফ্রেম-> f_code;
        পাইবজেক্ট * কো_কোড = f_code-> কো_কোড;      
        পাইবাইটস_স স্ট্রিংএন্ডসাইজ (কো_কোড, এবং অবলম্বন_বাইটেকোড এবং লেন)
    
  • এই ফাংশনটি ফিরে আসার পরে, শেষ নির্দেশটি অফসেটে ঝাঁপিয়ে পড়তে হবে 0 সত্যই বাইট-কোড এখন কার্যকর করা হয়েছে।

পাইথর্ম একটি পাইথার রয়েছে এইভাবে পাইথন স্ক্রিপ্টগুলিকে আবদ্ধ করার জন্য।


1

সিএক্সফ্রিজে (লিনাক্সের জন্য পাইপেক্স) ব্যবহার করা কাজটি করবে।

http://cx-freeze.sourceforge.net/

এটি উবুন্টু সংগ্রহস্থলগুলিতে উপলব্ধ


5
আমি মনে করি যে কেবলমাত্র .pyc ফাইলগুলি বান্ডিল করে। সাইথন, শেড স্কিন এবং পাইপি বাইকোড ছাড়িয়ে যায়।
সিইস টিমারম্যান

1

পাইথন উত্স কোডটি গোপন করার জন্য একটি বিস্তৃত উত্তর রয়েছে, যা এখানে পাওয়া যাবে

আলোচিত সম্ভাব্য কৌশলগুলি হ'ল :
- সংকলিত বাইটকোড ( python -m compileall)
- এক্সিকিউটেবল ক্রিয়েটার (বা পাইআইনস্টলারের মতো ইনস্টলার )
- সফ্টওয়্যারটি একটি পরিষেবা হিসাবে (আমার মতে আপনার কোডটি গোপন করার সর্বোত্তম সমাধান)
- পাইথন সোর্স কোড অবফসেক্টর


লিঙ্কটি উদাহরণ.কম এ যায়।
ডায়রিয়ান

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