小编fac*_*or2的帖子

具有任意标签长度的 AES-GCM

对于算法测试向量评估,我尝试在 GCM 模式下执行 AES,以使用任意标签长度值(例如 32 位)进行加密和解密。

当我尝试使用任意标签长度初始化密码时,如下所示:

final Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
GCMParameterSpec parameterSpec = new GCMParameterSpec(tagLen, iv);
cipher.init(Cipher.ENCRYPT_MODE, secretKey, parameterSpec);
Run Code Online (Sandbox Code Playgroud)

我遇到了这个错误:

java.security.InvalidAlgorithmParameterException: Unsupported TLen value; must be one of {128, 120, 112, 104, 96}
Run Code Online (Sandbox Code Playgroud)

通常,这将是一件好事,因为您不希望标签长度为 32。但是,出于我的目的,我确实需要此标签长度。

有没有办法可以覆盖这些限制以允许任意标签长度?

java encryption aes aes-gcm

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

Android 中应用内更新实现的位置

我正在尝试在我的应用程序中实现应用程序更新,但我查看的文档/教程与实际的最终实现之间存在脱节。

我遵循了以下来源的各种代码教程:

https://developer.android.com/guide/playcore/in-app-updates/kotlin-java#start-update https://www.section.io/engineering-education/android-application-in-app-update -using-android-studio/ https://medium.com/android-news/implement-in-app-update-in-android-68892bd11e35 https://www.raywenderlich.com/8034025-in-app-updates-入门

代码本身相当简单。

但我发现所有这些教程都缺少的是如何实际调用应用内更新。这些教程似乎都专门做了应用内更新活动。如何从我的主要活动中启动此应用内更新活动?或者,如何将应用程序内更新代码合并到我已经存在的主要活动中?

我假设我想要某种异步启动应用程序内更新监听器或类似的东西,但我似乎无法专注于集成所有应用程序内更新代码/应用程序内更新活动的最后一步进入我的应用程序。

编辑:这是我尝试过的示例

public class MainActivity extends AppCompatActivity implements RegionViewAdapter.ItemClickListener {
    private InstallStateUpdatedListener installStateUpdatedListener;
    private static final int FLEXIBLE_APP_UPDATE_REQ_CODE = 123;
    // if you change this value, you must also change it in the app build.gradle
    private final String currentVersion = "2021.06.6";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        appUpdateManager = AppUpdateManagerFactory.create(this);

        installStateUpdatedListener = state -> {
            if (state.installStatus() == InstallStatus.DOWNLOADED) {
                popupSnackbarForCompleteUpdate();
            } else if (state.installStatus() == InstallStatus.INSTALLED) {
                removeInstallStateUpdateListener(); …
Run Code Online (Sandbox Code Playgroud)

java android in-app-update

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

标签 统计

java ×2

aes ×1

aes-gcm ×1

android ×1

encryption ×1

in-app-update ×1