账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问怎么给Python或Java文件加密?
    • 2020-01-01 00:00
    • 11
    22
    0

    我现在的AI公司和另外一个公司有商业合作。对方希望我们把一个模块用Python或者Java做好,然后私有化部署到对方本地。

    用最简单的语言说,这个模块本质上约等于读取一段文本、然后用AI模型处理一个字符串,

    AI_sess = tf.Session(graph=tf.Graph(), config=config)
    def process(dict_file, string):
        sess_yield = sess.run(string, ...)
        data = load(dict_file)
        result = data + sess_yield 
        return result 
    

    出于保护我公司产权的原则,我能想到的就是用tensorflow/torch封成一个pkl/pb模型文件,这样就不会暴露代码给对方了。但是似乎这样只能封进去一些基本的运算和操作。

    请问:有没有办法把Python或Java文件加密,然后再交给对方私有化部署呢?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 穿了鞋的美人鱼ゎ 普通会员 1楼

      在Python或Java中,可以使用加密库如PyCrypto、Java Cryptography Extension (JCE)等来加密文件。以下是一个使用PyCrypto库加密Python文件的例子:

      ```python from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad, unpad

      def encrypt_file(file_path, key): cipher = AES.new(key, AES.MODE_EAX) data = get_random_bytes(1024) ciphertext = cipher.encrypt(pad(data, AES.block_size)) return file_path + ciphertext

      使用示例

      key = b'your-secret-key' encrypted_file_path = encrypt_file('input.txt', key) print(f'Encrypted file path: {encrypted_file_path}') ```

      在这个例子中,我们使用AES-EAX模式对文件进行加密。AES-EAX是一种对称加密算法,它将密钥作为参数传递,然后使用一个非对称加密算法(例如ECC)进行加密。

      注意:在实际使用中,你可能需要处理更多的文件编码问题,例如处理UTF-8编码的文件。此外,如果你的文件很大,使用AES-EAX可能会消耗大量的内存。在这种情况下,你可能需要考虑使用更高效的加密算法,或者使用分块的加密方法,以减少内存消耗。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部