小编Gra*_*Dot的帖子

向量借用和所有权

这不起作用:

\n\n
let vectors = vec![1, 2, 3, 4, 5, 6, 7];\n\nfor i in vectors {\n    println!("Element is {}", i);\n}\n\nlet largest = vectors[0];\n
Run Code Online (Sandbox Code Playgroud)\n\n

错误信息:

\n\n
let vectors = vec![1, 2, 3, 4, 5, 6, 7];\n\nfor i in vectors {\n    println!("Element is {}", i);\n}\n\nlet largest = vectors[0];\n
Run Code Online (Sandbox Code Playgroud)\n\n

该向量已移至循环中。它的所有权 \xe2\x80\x94 及其各个元素的所有权 \xe2\x80\x94 已永久转移到那里。

\n\n

但这有效:

\n\n
let largest = vectors[0];\nlet largest2 = vectors[0];\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不知道为什么;该vectors[0]值应该被移动到largest并且largest2应该失败,但它没有。

\n

rust

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

python中的AES-GCM解密

我正在尝试解密 AES_GCM 生成的密文。密文是从 golang 中的“crypto/aes”库生成的。现在,我正在尝试使用 cryptodome 库解密 python 中的加密文本。

func AESEncryption(key []byte, plaintext []byte)([]byte, error){
   c, err := aes.NewCipher(key)
   if err != nil {
      log.Printf("Error ocurred in generating AES key %s", err)
      return nil,  err
   }

   gcm, err := cipher.NewGCM(c)
   if err != nil {
      return nil,  err
   }

  nonce := make([]byte, gcm.NonceSize())
  if _, err = io.ReadFull(rand.Reader, nonce); err != nil {
    log.Printf("Error ocurred in generating AES key %s", err)
      return nil, err
  }

  return gcm.Seal(nonce, nonce, plaintext, nil), …
Run Code Online (Sandbox Code Playgroud)

python encryption go

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

如何将空字节传递给 Remix 中的 Solidity 函数?

我无法找到一种方法将空字节传递给混音时的 Solidity 函数。这是我的功能

    function checkEmptyBytes(bytes calldata _data) external pure returns (string memory){
        if (_data.length > 0){
            return "NOT_ZERO";
        }
        return "ZER0";
        
    }
Run Code Online (Sandbox Code Playgroud)

在重新混合时,我必须传递 _data 以使其返回“ZERO”

ethereum solidity

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

在Golang中的mongodb中插入struct

我试图在mongo数据库中插入一个结构。

type SecretsStruct struct {
   UserID string `bson:"userid" json:"userid"`
   secretOne string `bson:"secret_one" json:secret_one`
   secretTwo string `bson:"secret_two" json:secret_two`
   secretThree string `bson:"secret_three" json:secret_three`
 }

func (c *SecretsStruct) SetSecrets(userId string, encryptedKeys   
      [][]byte){
   c.UserID = userId
   c.secretOne = hex.EncodeToString(encryptedKeys[0])
   c.secretTwo = hex.EncodeToString(encryptedKeys[1])
   c.secretThree = hex.EncodeToString(encryptedKeys[2])
   log.Printf("This is the c %s", c)
 }

 g := SecretsStruct{}
 g.SetSecrets(userStruct.UserID, encryptedKeys)
 err = secretCollection.Insert(g)
 if err != nil {
      panic(err)
  }
Run Code Online (Sandbox Code Playgroud)

我尝试插入与机密相对应的字节数组,但没有帮助。填充到相应插入操作中的结果是:

{'_id': ObjectId('5b80117c118c660aaa0c87c2'),
'userid': 'eb19d220-ef13-43aa-8a7f-f78637718000'}
Run Code Online (Sandbox Code Playgroud)

另一方面,如果我尝试插入具有地图但没有结构的相同数据。

secretCollection.Insert(bson.M{"userid": userStruct.UserID,
    "secret_one": encryptedKeys[0],
    "secret_two": encryptedKeys[1],
    "secret_three": encryptedKeys[2]})
Run Code Online (Sandbox Code Playgroud)

插入操作成功执行。

go mongodb

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

标签 统计

go ×2

encryption ×1

ethereum ×1

mongodb ×1

python ×1

rust ×1

solidity ×1