小编May*_*kur的帖子

在 Android 8 (Oreo) 的 Webview 中获取 Resources$NotFoundException

我正在我的应用程序的 WebView 中加载网站的 URL。该网站获取用户的基本详细信息。我正在加载 WebView 活动。但是当 Android 8 的用户点击网站的下拉菜单时,应用程序会抛出以下错误。请注意,此 WebView 在 Android 7.1 或更低版本上完美运行。它只会在 Android 8.0 中引发错误。

FATAL EXCEPTION: main
Process: <Package Name>, PID: 9392
android.content.res.Resources$NotFoundException: Resource ID #0x0
at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:195)
at android.content.res.Resources.loadXmlResourceParser(Resources.java:2133)
at android.content.res.Resources.getLayout(Resources.java:1142)
at android.view.LayoutInflater.inflate(LayoutInflater.java:421)
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:416)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:407)
at org.chromium.content.browser.input.SelectPopupAdapter.getView(SelectPopupAdapter.java:53)
at android.widget.AbsListView.obtainView(AbsListView.java:2372)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1408)
at android.widget.ListView.onMeasure(ListView.java:1315)
at android.view.View.measure(View.java:21998)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:21998)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:21998)
at com.android.internal.widget.AlertDialogLayout.tryOnMeasure(AlertDialogLayout.java:144)
at com.android.internal.widget.AlertDialogLayout.onMeasure(AlertDialogLayout.java:69)
at android.view.View.measure(View.java:21998)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:21998)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6580)
at …
Run Code Online (Sandbox Code Playgroud)

android webview android-8.0-oreo

7
推荐指数
1
解决办法
2057
查看次数

在 Dart 中解密 AES/CBC/PKCS5Padding 加密

我已经有了java加密代码。现在我想使用我的服务器上的 API。即使在尝试了各种教程和示例代码之后,我也无法成功解密哈希值。

我知道固定盐和静脉注射根本不推荐。但为了简单起见并为了理解问题,我将盐和IV保留为“00000000000000000000000000000000”;

Java 加密后的哈希 = "XjxCg0KK0ZDWa4XMFhykIw=="; 使用的私钥=“Mayur12354673645”

有人可以帮我使用 dart 解密上面的字符串吗?

JAVA代码

public String encrypt(String salt, String iv, String passphrase,
                              String plaintext) {
            try {
                SecretKey key = generateKey(salt, passphrase);
                byte[] encrypted = doFinal(Cipher.ENCRYPT_MODE, key, iv, plaintext
                        .getBytes("UTF-8"));
                return base64(encrypted);
            } catch (UnsupportedEncodingException e) {
                throw fail(e);
            }
        }
    
        public String decrypt(String salt, String iv, String passphrase,
                              String ciphertext) {
            try {
                SecretKey key = generateKey(salt, passphrase);
                byte[] decrypted = doFinal(Cipher.DECRYPT_MODE, key, iv,
                        base64(ciphertext));
                return new String(decrypted, "UTF-8");
            } catch …
Run Code Online (Sandbox Code Playgroud)

encryption aes dart cbc-mode flutter

2
推荐指数
1
解决办法
7102
查看次数

Flutter 中的 AES/GCM 加密 (Dart)

我正在尝试在 flutter 中实现 AES/GCM/NoPadding 加密。我已经在JAVA中成功实现了它,但是当我尝试在flutter中解密它时,我没有成功。

我尝试在 dart 中编写解密代码,但出现 未处理的异常:SecretBox 有错误的消息身份验证代码 (MAC)

我的Java代码

public class GCMEncryption {
    public static final int AES_KEY_SIZE = 128;
    public static final int GCM_IV_LENGTH = 12;
    public static final int GCM_TAG_LENGTH = 16;

    public String getEncryptedText(String plainText) {
        try {
            byte[] IV = new byte[GCM_IV_LENGTH];
            SecureRandom random = new SecureRandom();
            random.nextBytes(IV);
            String iv = Base64.getEncoder().encodeToString(IV);
            System.out.println("IV : "+iv);
            
            byte[] cipherText = encrypt(plainText.getBytes(), getKeySpec(), IV);
            String text = Base64.getEncoder().encodeToString(cipherText);
            text = iv+text; // Concating iv and encrypted …
Run Code Online (Sandbox Code Playgroud)

encryption cryptography aes aes-gcm flutter

1
推荐指数
1
解决办法
3407
查看次数