如何判断cdfv2文件是否使用python加密?

2024-10-03 09:15:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件被Zed加密了!。 这是由

file --mime-type test.zed

“应用程序/CDFV2加密”

但是,当使用python和filemagic时:

^{pr2}$

完全相同的文件标识为: “应用程序/cdfv2”

它们都使用libmagic,所以我确信在这两种情况下都会得到相同的类型。但是,根据this;file命令搜索

a user stream in the CDF file called "EncryptedPackage"

很明显后缀是“-encrypted”。在

现在回答我的问题:

  • 如何定义“用户流”?在
  • 我可以通过检查python中的二进制文件来执行检查吗?在
  • 还有其他python模块吗 它可以提供有关文件是否加密的信息?在

我使用的是filemagic 1.6和libmagic 5.22


Tags: 文件test应用程序type情况标识filelibmagic
1条回答
网友
1楼 · 发布于 2024-10-03 09:15:49

免责声明:我是手工编写的,没有编译器,所以它可能不完美,也不适合使用,所以请看概念和示例/链接

解决方案是一个Recyclerview(或者您想要的列表视图)

您的问题更多的是,您不知道如何用一个列表同时显示文本或图像

this可能是一个解决方案,但我还是要在这里写下我的个人解释)

为此,您需要使用自定义适配器。你可以参考this link了解一些解释

现在,在适配器中,您有两种选择:

创建一个项目。包含textView和ImageView的xml文件

大概是这样的:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="3dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="7dp"
        card_view:cardBackgroundColor="@color/white"
        card_view:cardElevation="2dp"
        card_view:contentPaddingBottom="5dp"
        card_view:contentPaddingLeft="5dp"
        card_view:contentPaddingRight="5dp"
        card_view:contentPaddingTop="5dp">


        <TextView
            android:id="@+id/tv"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:maxWidth="100dp"
            android:layout_marginEnd="45dp"
            android:layout_marginRight="45dp"
            android:text="@string/placeholder"
            android:textColor="@color/textGrey"
            android:textSize="18sp" />

        <ImageView
            android:id="@+id/iv"
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            />
    </android.support.v7.widget.CardView>

</RelativeLayout>

现在,在适配器的初始化中(我在我的onBindViewHolder中执行此操作,因为我循环使用我的视图),您可以执行如下快速检查:

if(check for text){
  iv.setVisibility(View.GONE);
  tv.setVisibility(View.VISIBLE);
  tv.setText(the text);
} else if(check for image){
  tv.setVisibility(View.GONE);
  iv.setVisibility(View.VISIBLE);
  //set iv src as you prefer
}else{
  //dunno what else, maybe error
}

另一个选项是创建两个不同的xml:textMsg.xmlimgMsg.xml

现在您必须自定义getItemViewTypeadapter

@Override
public int getItemViewType(int position) {
    if (isTextCheck) {
        return 1;
    } else {//it is img
        return 2;
    }
}

最后,在onCreateViewHolder中,您可以为返回的viewType返回不同的view

 @NonNull
    @Override
    public InterventionActivityFieldViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        // ...
        View inflatedView = LayoutInflater.from(ctx)
                .inflate(viewType == 1 ? R.layout.textitem :R.layout.imgitem, parent, false);
        return new myViewHolder();
    }

this是一个可能的视图持有者示例

相关问题 更多 >