জাভা সুরক্ষা: অবৈধ কী আকার বা ডিফল্ট পরামিতি?


409

আমি আগে এই সম্পর্কে একটি প্রশ্ন জিজ্ঞাসা করেছি, কিন্তু এটি সঠিক উত্তর পায় না এবং কোথাও নেতৃত্বে।

সুতরাং আমি সমস্যার কয়েকটি বিশদ বিবরণ দিয়েছি এবং আমি কীভাবে এটি সমাধান করতে পারি বা আমার কী চেষ্টা করা উচিত সে সম্পর্কে আপনার ধারণাগুলি শুনতে চাই।

আমি আমার লিনাক্স সার্ভারে জাভা 1.6.0.12 ইনস্টল করেছি এবং নীচের কোডটি ঠিক নিখুঁতভাবে চলে।

String key = "av45k1pfb024xa3bl359vsb4esortvks74sksr5oy4s5serondry84jsrryuhsr5ys49y5seri5shrdliheuirdygliurguiy5ru";
try {
    Cipher c = Cipher.getInstance("ARCFOUR");

    SecretKeySpec secretKeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "ARCFOUR");
    c.init(Cipher.DECRYPT_MODE, secretKeySpec);

    return new String(c.doFinal(Hex.decodeHex(data.toCharArray())), "UTF-8");

} catch (InvalidKeyException e) {
    throw new CryptoException(e);
}

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

Caused by: java.security.InvalidKeyException: Illegal key size or default parameters
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.a(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at javax.crypto.Cipher.init(DashoA13*..) ~[na:1.6]
    at my.package.Something.decode(RC4Decoder.java:25) ~[my.package.jar:na]
    ... 5 common frames omitted

25 লাইনটি হ'ল: c.init(Cipher.DECRYPT_MODE, secretKeySpec);

দ্রষ্টব্য:
সার্ভারের 1.6.0.12 জাভা ডিরেক্টরিতে জাভা.সিকিউরিটি 1.6.0.26 জাভা.সিকিউরিটি ফাইলের সাথে প্রায় সম্পূর্ণ মিলছে। প্রথমটিতে কোনও অতিরিক্ত সরবরাহকারী নেই।
* আগের প্রশ্নটি এখানে



4
এটি ত্রুটি হিসাবেও ছুঁড়ে দেওয়া যেতে পারে: Caused by: java.security.InvalidKeyException: Illegal key size("বা ডিফল্ট পরামিতিগুলি ছাড়াই) জাভা 8
হ্যাকাজার

কেবল ওপেনজেডিকে ব্যবহার করুন এবং এটি কার্যকর হবে।
রডরিগো অ্যাসেন্সিও

@ রদ্রিগো অ্যাসেনসিও: আমি ওপেনজেডিকে ব্যবহার করছি এবং এটি এটির সাথে কাজ করে না। আপনাকে সীমাহীন শক্তি এখতিয়ার নীতি ফাইল জার ফাইল ইনস্টল করতে হবে। এবং তারপরে এটি কাজ করবে।
অঞ্জনব

5
@AnketThakur জবাব আপডেট করুন। জাভা 9 এবং জাভা 8u151 যেহেতু এখতিয়ার নীতি ফাইলগুলি ম্যানুয়ালি ডাউনলোড এবং ইনস্টল করার দরকার নেই। সীমাহীন ক্রিপ্টোগ্রাফি সক্ষম করতে, কেউ নতুন ক্রিপ্টো.পলিসি সুরক্ষা সম্পত্তি ব্যবহার করতে পারেন। যদি নতুন সিকিউরিটি সম্পত্তি (ক্রিপ্টো.পলিসি) জাভা.সিকিউরিটি ফাইলে সেট করা থাকে, বা জেসিই কাঠামোটি আরম্ভ করার আগে সিকিউরিটি.সেটপ্রোপার্টি () কলটি ব্যবহার করে গতিশীলভাবে সেট করা থাকে, তবে সেটিংটি সম্মানিত হবে। ডিফল্ট হিসাবে, সম্পত্তি অপরিজ্ঞাত করা হবে।
মার্সিন কওপোটেক

উত্তর:


722

সম্ভবত আপনার এখন সীমাহীন শক্তি ফাইল ইনস্টল করা নেই।

আপনার এই ফাইলটি ডাউনলোড করতে হবে:

জাভা ক্রিপ্টোগ্রাফি এক্সটেনশন (জেসিই) সীমাহীন শক্তি এখতিয়ার নীতি ফাইল 6

জাভা ক্রিপ্টোগ্রাফি এক্সটেনশন (জেসিই) সীমাহীন শক্তি এখতিয়ার নীতি ফাইলগুলি 7 ডাউনলোড করুন

জাভা ক্রিপ্টোগ্রাফি এক্সটেনশন (জেসিই) সীমাহীন শক্তি এখতিয়ার নীতি ফাইলগুলি 8 ডাউনলোড করুন (কেবল জাভা 8 u162 এর আগে সংস্করণগুলির জন্য প্রয়োজনীয়)

জিপ থেকে জার ফাইলগুলি বের করে এনে সেভ করুন ${java.home}/jre/lib/security/


2
@JamesBlack - হাঁ, এবং নিশ্চিত করুন সব ঘাঁটি আমি JAR- র এর অধীন করা আবৃত ছিল করতে Java/jre/lib/security, Java/jdk/lib/securityএবং Java/jdk/jre/lib/security। 'জাভা-পরিবর্তন' চালানো প্রত্যাশিত বিশদটি ফেরত দেয়।
অ্যারোথ

5
আইবিএম এর এসডিকে (যেমন, ওয়েবস্পিয়ার) জন্য, www14.software.ibm.com/webapp/iwm/web/preLogin.do?source=jcesdk
21

4
জাভা 9 এবং জাভা 8u151 যেহেতু এখানের নীতি ফাইলগুলি ম্যানুয়ালি ডাউনলোড এবং ইনস্টল করার দরকার নেই। সীমাহীন ক্রিপ্টোগ্রাফি সক্ষম করতে, কেউ নতুন ক্রিপ্টো.পলিসি সুরক্ষা সম্পত্তি ব্যবহার করতে পারেন। যদি নতুন সিকিউরিটি সম্পত্তি (ক্রিপ্টো.পলিসি) জাভা.সিকিউরিটি ফাইলে সেট করা থাকে, বা জেসিই কাঠামোটি আরম্ভ করার আগে সিকিউরিটি.সেটপ্রোপার্টি () কলটি ব্যবহার করে গতিশীলভাবে সেট করা থাকে, তবে সেটিংটি সম্মানিত হবে। ডিফল্ট হিসাবে, সম্পত্তি অপরিজ্ঞাত করা হবে।
মার্সিন কওপোটেক

4
সুতরাং, এই আপোভয়েটেড উত্তরটি এখন পুরানো, এবং অবমাননিত। কীভাবে আমরা ভোট দিন বা এই উত্তর supress যাতে না stackoverflow.com/a/46857694/2808798 করতে উত্তর "গৃহীত" হবে?
জেসি অ্যাডেলম্যান

3
@ জেসি অ্যাডেলম্যান - দুর্ভাগ্যক্রমে এটি প্রায় 7 বছর বয়সী, খুব বেশি কিছু করা যায় না। যার কাছে জিজ্ঞাসা করা হয়েছে এটির পরিবর্তন করা দরকার।
জেমস ব্ল্যাক

54

জেআরই / জেডিকে / জাভা 8 এখতিয়ার ফাইলগুলি এখানে পাওয়া যাবে:

জাভা ক্রিপ্টোগ্রাফি এক্সটেনশন (জেসিই) সীমাহীন শক্তি এখতিয়ার নীতি ফাইলগুলি 8 ডাউনলোড করুন

জেমস যেমন উপরে বলেছেন:
ফাইলগুলিতে ইনস্টল করুন ${java.home}/jre/lib/security/


2
6 এবং 7 ব্যবহার করার চেষ্টা করা হয়েছিল, কিন্তু তারা কার্যকর হয়নি। 8 ইনস্টল করতে হয়েছিল। ধন্যবাদ।
জেসন কিম

9
নতুন প্রকাশ JDK 8u151 এর "ক্রিপ্টো নীতি নিয়ন্ত্রণের জন্য নতুন সুরক্ষা সম্পত্তি" রয়েছে। এখন এটি স্যুইচ করার জন্য একটি সম্পত্তি পরিবর্তন। নীচের লাইন: 256-বিট কী ব্যবহার করে সক্ষম করতে "# crypto.policy = আনলিমিটেড" "lib \ সুরক্ষা ava জাভা.সিকিউরিটি" লাইনটি থেকে "#" সরান। oracle.com/technetwork/java/javase/8u151-relnotes-3850493.html
গোলার্ধে

1
ধন্যবাদ! এটি যেহেতু সুরক্ষিত সম্পত্তি, তাই আপনি সিকিউরিটি.সেটপ্রোপার্টি ("ক্রিপ্টো.পলিসি", "সীমাহীন" )ও বলতে পারেন। সূত্র: @ হেমসফায়ারের লিঙ্ক :)
ফ্লুফ

42

জাভা 7 এর জন্য ডাউনলোড লিঙ্কটি জেসি -7-ডাউনলোড

জাভা download jdk1.7.0_10 \ jre \ lib \ সুরক্ষায় দুটি ডাউনলোড করা জার অনুলিপি
করুন নিরাপদ দিকে থাকতে পুরানো জারগুলির ব্যাকআপ নিন।

জাভা 8-এর জন্য ডাউনলোড লিঙ্কটি jce-8-ডাউনলোড
জাভাতে ডাউনলোড করা জারগুলি অনুলিপি করুন \ jdk1.8.0_45 re jre \ lib \ সুরক্ষা
নিরাপদ দিকে থাকতে পুরানো জারগুলির ব্যাকআপ নিন।


39

জাভা 9, জাভা 8u161 , জাভা 7u171 এবং জাভা 6u181 সহ সীমাবদ্ধতা এখন ডিফল্টরূপে অক্ষম করা আছে। জাভা বাগ ডেটাবেজে সমস্যাটি দেখুন ।


জাভা 8u151 দিয়ে শুরু করে আপনি প্রোগ্রামিকভাবে সীমাবদ্ধতাটি অক্ষম করতে পারেন।

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

পরিবর্তে আপনি এখন জেসিই ক্লাসের প্রথম ব্যবহারের আগে নিম্নোক্ত লাইনে প্রার্থনা করতে পারেন (উদাহরণস্বরূপ আবেদন শুরু করার ঠিক পরে):

Security.setProperty("crypto.policy", "unlimited");

অ্যান্ড্রয়েডে কী হবে? কোন এপিআই স্তরে এই বিধিনিষেধের পদ্ধতিগুলি সমাধান করা যেতে পারে?
TheRealChx101

31

এটি একটি কোড কেবল সমাধান । কনফিগারেশন ফাইলগুলি ডাউনলোড বা গণ্ডগোলের দরকার নেই।

এটি প্রতিবিম্ব ভিত্তিক সমাধান, জাভা 8-তে পরীক্ষা করা

আপনার প্রোগ্রামের শুরুতে একবার এই পদ্ধতিটি কল করুন।

// আমদানি

import javax.crypto.Cipher;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Map;

// পদ্ধতি

public static void fixKeyLength() {
    String errorString = "Failed manually overriding key-length permissions.";
    int newMaxKeyLength;
    try {
        if ((newMaxKeyLength = Cipher.getMaxAllowedKeyLength("AES")) < 256) {
            Class c = Class.forName("javax.crypto.CryptoAllPermissionCollection");
            Constructor con = c.getDeclaredConstructor();
            con.setAccessible(true);
            Object allPermissionCollection = con.newInstance();
            Field f = c.getDeclaredField("all_allowed");
            f.setAccessible(true);
            f.setBoolean(allPermissionCollection, true);

            c = Class.forName("javax.crypto.CryptoPermissions");
            con = c.getDeclaredConstructor();
            con.setAccessible(true);
            Object allPermissions = con.newInstance();
            f = c.getDeclaredField("perms");
            f.setAccessible(true);
            ((Map) f.get(allPermissions)).put("*", allPermissionCollection);

            c = Class.forName("javax.crypto.JceSecurityManager");
            f = c.getDeclaredField("defaultPolicy");
            f.setAccessible(true);
            Field mf = Field.class.getDeclaredField("modifiers");
            mf.setAccessible(true);
            mf.setInt(f, f.getModifiers() & ~Modifier.FINAL);
            f.set(null, allPermissions);

            newMaxKeyLength = Cipher.getMaxAllowedKeyLength("AES");
        }
    } catch (Exception e) {
        throw new RuntimeException(errorString, e);
    }
    if (newMaxKeyLength < 256)
        throw new RuntimeException(errorString); // hack failed
}

ক্রেডিট: ডেলথাস


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

আপনাকে অনেক ধন্যবাদ


16

উইন্ডোজ x এক্স 64 x, এক্সলিপস এবং জেডিকে ১.6.০_৩০ ব্যবহার করার সময় আমি একই ত্রুটিটি পেয়েছি। জেডিকে ইনস্টলেশন ফোল্ডারে একটি jreফোল্ডার রয়েছে। আমি প্রথমে জেডিকে'র লাইব / সুরক্ষা ফোল্ডারে কোনও ভাগ্য ছাড়াই পূর্বোক্ত জারগুলি যুক্ত করার সাথে সাথে এটি প্রথমে আমাকে ছুঁড়ে ফেলেছিল। সম্পূর্ণ পথ:

C:\Program Files\Java\jdk1.6.0_30\jre\lib\security

এই সংরক্ষণাগারেরjce ফোল্ডারে থাকা ফাইলগুলিকে সেই ফোল্ডারে ডাউনলোড এবং এক্সট্রাক্ট করুন ।


16

জাভাতে, ডিফল্টরূপে এইএস 128 বিট কীটি সমর্থন করে, আপনি যদি 192 192 বিট বা 256 বিট কী ব্যবহার করার পরিকল্পনা করেন তবে জাভা কম্পাইলার অবৈধ কী আকারের ব্যতিক্রম নিক্ষেপ করবে, যা আপনি পাচ্ছেন।

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

জেসিই জিপতে নীচের জেআর রয়েছে:

  1. local_policy.jar
  2. US_export_policy.jar

আপনার এই জার ফর্মটি আপনার প্রতিস্থাপন করতে হবে <JAVA_HOME>/jre/lib/security। আপনি যদি ইউনিক্স সিস্টেমে থাকেন তবে সম্ভবত এটি উল্লেখ করা হবে/home/urs/usr/lib/jvm/java-<version>-oracle/

কখনও কখনও কেবল সিকিউরিটি ফোল্ডারে লোকাল_পলিসি.জার, ইউএস_এক্সপোর্ট_পলিসি.জার প্রতিস্থাপন করা ইউনিক্সে কাজ করে না, তাই আমি প্রথমে আপনার ডেস্কটপে সুরক্ষা ফোল্ডারটি অনুলিপি করার পরামর্শ দিই, জারের @ ডেস্কটপ / সুরক্ষা ফোল্ডারটি প্রতিস্থাপন করুন, / জেআর / লিব থেকে সুরক্ষা ফোল্ডারটি মুছুন to / & ডেস্কটপ সুরক্ষা ফোল্ডারটিকে / jre / lib / এ সরান।

যেমন :: sudo এমভি সুরক্ষা /usr/lib/jvm/java-7-oracle/jre/lib


5

এই বিষয়টি এখানে কী হিসাবে প্রদর্শিত হবে তার একটি সংক্ষিপ্ত আলোচনা রয়েছে । এটির সাথে লিঙ্ক করা পৃষ্ঠাটি চলে গেছে বলে মনে হচ্ছে তবে প্রতিক্রিয়াগুলির মধ্যে একটি হতে পারে আপনার যা প্রয়োজন:

প্রকৃতপক্ষে, ইউএস_এক্সপোর্ট_পলিসি.জার এবং লোকাল_পলিসি.জার কে কোর / লিব / জেসি থেকে $ জাভাআহোম / জেআর / লিবিব / সুরক্ষা অনুলিপি করতে সহায়তা করেছে। ধন্যবাদ।


ধন্যবাদ, তবে আমি জাভা ইনস্টল করার আগেই আমার লাইব / সুরক্ষা ফোল্ডারে ছিল US_export_policy.jarএবং local_policy.jarআমার জাভা ইনস্টলেশন ফোল্ডারে কোনওভাবেই আমি কোর / লিবিব / জেসি খুঁজে পাইনি।
রিহার্ডস

5

সমস্যা বিষয়বস্তু ফাইলের default_local.policy মধ্যে local_policy.jar ফোল্ডারে JRE \ liberal এর সংক্ষিপ্ত রূপ \ নিরাপত্তা যদি আপনি JRE ইনস্টল করুন,:

// Some countries have import limits on crypto strength. This policy file
// is worldwide importable.

grant {
    permission javax.crypto.CryptoPermission "DES", 64;
    permission javax.crypto.CryptoPermission "DESede", *;
    permission javax.crypto.CryptoPermission "RC2", 128,
                                     "javax.crypto.spec.RC2ParameterSpec", 128;
    permission javax.crypto.CryptoPermission "RC4", 128;
    permission javax.crypto.CryptoPermission "RC5", 128,
          "javax.crypto.spec.RC5ParameterSpec", *, 12, *;
    permission javax.crypto.CryptoPermission "RSA", *;
    permission javax.crypto.CryptoPermission *, 128;
};

আপনার যদি বিশ্বব্যাপী বৈধ সেটিংসের প্রয়োজন না হয় তবে আপনি কেবল এই ফাইলটি সম্পাদনা করতে এবং সামগ্রীটি এতে পরিবর্তন করতে পারেন

// Country-specific policy file for countries with no limits on crypto strength.
grant {
    // There is no restriction to any algorithms.
    permission javax.crypto.CryptoAllPermission;
};

আপনি যদি ওরাকল থেকে জেসিই ডাউনলোড করেন তবে এটিই পাবেন।


4

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


2

ডিফল্টরূপে, জাভা কেবল এনক্রিপশনের জন্য এইএস 128 বিট (16 বাইট) কী মাপ সমর্থন করে। যদি আপনার ডিফল্ট সমর্থিতের চেয়ে বেশি প্রয়োজন না হয় তবে আপনি ব্যবহারের আগে সঠিক আকারের কীটি ছাঁটাই করতে পারেন Cipherজাভাদোক দেখুনডিফল্ট সমর্থিত কীগুলির জন্য ।

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

AgileBits ব্লগে কী 128 থেকে 256 কী আকারের বিষয় বিবেচনা করে কিনা সে সম্পর্কে এখানে একটি নিবন্ধ রয়েছে

SecretKeySpec getKey() {
    final pass = "47e7717f0f37ee72cb226278279aebef".getBytes("UTF-8");
    final sha = MessageDigest.getInstance("SHA-256");

    def key = sha.digest(pass);
    // use only first 128 bit (16 bytes). By default Java only supports AES 128 bit key sizes for encryption.
    // Updated jvm policies are required for 256 bit.
    key = Arrays.copyOf(key, 16);
    return new SecretKeySpec(key, AES);
}

সাইফার প্রতিটি ক্রিপ্টো টাইপ জন্য বৈধ কী মাপ শ্রেণীর ডকুমেন্টেশন পয়েন্ট।
কেপলোগিক

ওরাকল ডকুমেন্ট সাইফার (এনক্রিপশন) দেখুন অ্যালগরিদমস এইএস: অ্যাডভান্সড এনক্রিপশন স্ট্যান্ডার্ড যা এনএআইএসটি 197-এ উল্লিখিত হয়েছে। জোয়ান ডিমেন এবং ভিনসেন্ট রিজম্যান দ্বারা রিজান্ডেল অ্যালগরিদম হিসাবেও পরিচিত, এইএস 128, 192, এর 128-বিট ব্লক সাইফার সমর্থনকারী কী এবং 256 বিট।
zaph

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

যে কোনও এইএস বাস্তবায়ন যা 256-বিট কীগুলি সমর্থন করে না সেগুলি মূলত অকেজো হবে কারণ এটি 256-বিট কীগুলি ব্যবহার করে AES এনক্রিপশনগুলির যথেষ্ট সংখ্যক ডিক্রিপ্ট করতে সক্ষম হবে না।
zaph

1
যদি কোনও 256-বিট কীটি সর্বোত্তম সমাধানের প্রয়োজন হয় তবে সম্ভবত একমাত্র সমাধান হ'ল প্রয়োজনে পলিসি ফাইলটি ইনস্টল করা, সম্ভাব্যভাবে সুরক্ষা দুর্বল করার জন্য কীটি কেটে ফেলা হবে না এবং আন্তঃঅবিযোগিতার ক্ষেত্রে সম্ভব নাও হতে পারে।
জাফ

2

জাভা 9 বা 8u151 থেকে শুরু করে আপনি ফাইলটিতে একটি লাইন মন্তব্য ব্যবহার করতে পারেন:

<JAVA_HOME>/jre/lib/security/java.security

এবং পরিবর্তন:

#crypto.policy=unlimited

প্রতি

crypto.policy=unlimited

2

আপনি যদি অ্যাপ্লিকেশন সহ লিনাক্স বিতরণ ব্যবহার করছেন এবং ওয়েবআপড 8 পিপিএ যুক্ত করেছেন, আপনি কেবল কমান্ডটি চালাতে পারবেন

apt-get install oracle-java8-unlimited-jce-policy

অন্যান্য আপডেট:

  1. সীমাহীন শক্তি এখতিয়ার নীতি ফাইলগুলি জাভা 9 এর সাথে অন্তর্ভুক্ত রয়েছে এবং এটি ডিফল্টরূপে ব্যবহৃত হয়
  2. জাভা 8 আপডেট 161 দিয়ে শুরু করে , জাভা 8 সীমাহীন শক্তি এখতিয়ার নীতিতে ডিফল্ট।
  3. জাভা 8 আপডেট 151 দিয়ে শুরু করে , আনলিমিটেড স্ট্রেংথ এখরডিশন নীতিটি জাভা 8 এর সাথে অন্তর্ভুক্ত করা হয়েছে তবে এটি ডিফল্টরূপে ব্যবহার করা হয়নি। এটি সক্ষম করতে, আপনাকে জাভা.সিকিউরিটি ফাইল <java_home>/jre/lib/security( জেডিকে জন্য) বা <java_home>/lib/security( জেআরই জন্য) সম্পাদনা করতে হবে । লাইনটি Uncomment (বা অন্তর্ভুক্ত) করুন

    crypto.policy=unlimited

    প্রশাসক হিসাবে চালানো সম্পাদক ব্যবহার করে আপনি ফাইলটি সম্পাদনা করেছেন তা নিশ্চিত করুন sure নীতি পরিবর্তন কেবল জেভিএম পুনরায় চালু করার পরে কার্যকর হয়

জাভা 8 আপডেটের আগে 151 উত্তর উত্তর বৈধ রাখে। জেসিই সীমাহীন শক্তি এখতিয়ার নীতি ফাইল ডাউনলোড করুন এবং প্রতিস্থাপন করুন।

আরও তথ্যের জন্য, আপনি নীচে আমার ব্যক্তিগত ব্লগ পোস্টটি পড়তে পারেন - জাভা ক্রিপ্টোগ্রাফি এক্সটেনশন (জেসিই) সীমাহীন শক্তি এখতিয়ার নীতি ফাইলগুলি কীভাবে ইনস্টল করবেন


1

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

বিকল্প নম্বর 1: কম দৈর্ঘ্যের আরএসএ 2048 সহ শংসাপত্র ব্যবহার করুন

বিকল্প নম্বর 2: আপনি jre\lib\security জাভা ব্যবহার করুন যা কিছুতেই আপনি দুটি জার আপডেট করবেন

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

Java Security: Illegal key size or default parameters?

আমি দুটি জারে https://www14.software.ibm.com/webapp/iwm/web/reg/pick.do?source=jcesdk&lang=en_US সহ জাভা ইনটসলেড ফোল্ডারটি আপডেট করেছি

আপনি লিঙ্ক https://www-01.ibm.com/support/docview.wss?uid=swg21663373 লিঙ্কে রেফারেন্স চেক করতে পারেন


1

আপনি জেডিকে / জেআরই এর সর্বশেষতম সংস্করণ ব্যবহার করেছেন তা নিশ্চিত করুন

আমার ক্ষেত্রে, আমি জেসিইকে জেআরই ফোল্ডারে রেখেছিলাম, তবে এটি কোনও লাভ হয়নি। এটি ঘটেছিল কারণ আমি সরাসরি আমার প্রকল্পটি আইডিই থেকে চালিয়ে যাচ্ছিলাম (জেডিকে ব্যবহার করে)।

তারপরে আমি আমার জেডিকে এবং জেআরইকে সর্বশেষ সংস্করণে (1.8.0_211) আপডেট করেছি এবং সমস্যাটি চলে গেছে।

আরও বিশদ: https://bugs.java.com/bugdatedia/view_bug.do?bug_id=JDK-8170157


1

ডিফল্ট জেডি কে আমেরিকান বিধিনিষেধের কারণে কেবল 128 বিট কীগুলির মাধ্যমে এনক্রিপশন সমর্থন করে। তাই সমর্থন এনক্রিপশন করার 256 বিট দীর্ঘ চাবি থেকে আমরা প্রতিস্থাপন আছে local_policy.jarএবং US_export_policy.jars$JAVA_HOME/java-8-oracle/jre/lib/securityফোল্ডারের অন্যথায় এটা দিতে হবে:

জাভা.সিকিউরিটি.অনুষ্ঠানিক কী ধারণা, অবৈধ কী আকার বা ডিফল্ট


0

আপনার সেখানে যেতে হবে

/jdk1.8.0_152 | / জেআর | / lib | / সুরক্ষা | জাভা.সিকিউরিটি এবং অসুবিধা

#crypto.policy=unlimited

প্রতি

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