已掉线,重新登录

首页 > 绿虎论坛 > 杂类 > 超级灌水 (发帖)

标题: 人工智能初体验,让ChatGPT考试答题

作者: @Ta

时间: 2023-02-13

点击: 1162

【不太愉快的】
微信截图_20230213134121.png(43.21 KB)
4.png(41.45 KB)
【节选聊天记录】
论述题:
6.png(51.81 KB)
名词解释题:
5.png(33.02 KB)
判断题:
2.png(30.64 KB)
【也有回答不上的】
3.png(36.09 KB)

总体感受:非常好,很强!(回答延迟非常高,可能是机场不稳定的原因)
60s新闻


[隐藏样式|查看源码]


『回复列表(95|隐藏机器人聊天)』

1. 感觉官网提供的api和chat.openai.com返回的数据不一样
(/@Ta/2023-02-13 14:49//)

2.

@幕后导演,ChatGPT目前没有做为API提供,给的API都是旧版本,GPT-3之类的。

(/@Ta/2023-02-13 16:19//)

3.

@老虎会游泳,我昨天让它帮我写前端特效代码,发现它单次回复的字符个数上限2048个字符(它自己说的),虽然可以通过发送“请你继续发送剩余代码”让它继续发送代码,但拼接在一起并不能用。

请问你有哪些“用ChatGPT写代码”的使用经验分享一下吗?
60s新闻

(/@Ta/2023-02-15 09:42//)

4.

@TabKey9,使用go进行RSA256加密

使用Go进行RSA256加密,需要进行以下步骤:

生成密钥对
首先,你需要生成一个RSA密钥对,包括一个私钥和一个公钥。你可以使用Go内置的crypto/rand和crypto/rsa包来生成密钥对。

以下是一个生成2048位RSA密钥对的示例代码:

go
Copy code
package main

import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/pem"
"os"
)

func main() {
bitSize := 2048

privateKey, err := rsa.GenerateKey(rand.Reader, bitSize)
if err != nil {
    panic(err)
}

privateKeyBytes := x509.MarshalPKCS1PrivateKey(privateKey)
privateKeyPem := pem.EncodeToMemory(&pem.Block{
    Type:  "RSA PRIVATE KEY",
    Bytes: privateKeyBytes,
})
err = os.WriteFile("private_key.pem", privateKeyPem, 0644)
if err != nil {
    panic(err)
}

publicKeyBytes, err := x509.MarshalPKIXPublicKey(&privateKey.PublicKey)
if err != nil {
    panic(err)
}
publicKeyPem := pem.EncodeToMemory(&pem.Block{
    Type:  "RSA PUBLIC KEY",
    Bytes: publicKeyBytes,
})
err = os.WriteFile("public_key.pem", publicKeyPem, 0644)
if err != nil {
    panic(err)
}

}
这将生成一个名为private_key.pem的私钥文件和一个名为public_key.pem的公钥文件。

使用私钥进行加密
接下来,你需要使用私钥对要加密的数据进行签名。

以下是一个使用Go内置的crypto/rsa包进行加密的示例:

go
Copy code
package main

import (
"crypto/rand"
"crypto/rsa"
"crypto/sha256"
"encoding/base64"
"io/ioutil"
)

func main() {
data := []byte("要加密的数据")

privateKeyBytes, err := ioutil.ReadFile("private_key.pem")
if err != nil {
    panic(err)
}
privateKey, err := x509.ParsePKCS1PrivateKey(privateKeyBytes)
if err != nil {
    panic(err)
}

hashed := sha256.Sum256(data)
signature, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, hashed[:])
if err != nil {
    panic(err)
}

fmt.Println(base64.StdEncoding.EncodeToString(signature))

}
在这个示例中,data是要加密的数据,privateKeyBytes是从私钥文件中读取的私钥。

使用sha256.Sum256函数对原始数据进行哈希,使用rsa.SignPKCS1v15函数对哈希结果进行签名,其中第三个参数crypto.SHA256指定了使用SHA256哈希算法进行签名。

最后,使用base64.StdEncoding.EncodeToString函数将签名结果转换为字符串并输出。

使用公钥进行验证
在接收方收到数据后,可以使用公钥来验证签名的有效性。

以下是一个使用Go内置的crypto/rsa包进行验证的示例:

java
Copy code
package main

import (
"crypto/rsa"
"crypto/sha256"
"encoding/base64"
"io/ioutil"
)





继续

继续上面的示例代码:

go
Copy code
func main() {
data := []byte("要加密的数据")

publicKeyBytes, err := ioutil.ReadFile("public_key.pem")
if err != nil {
    panic(err)
}
publicKey, err := x509.ParsePKIXPublicKey(publicKeyBytes)
if err != nil {
    panic(err)
}
rsaPublicKey := publicKey.(*rsa.PublicKey)

signatureBase64 := "签名的字符串"
signature, err := base64.StdEncoding.DecodeString(signatureBase64)
if err != nil {
    panic(err)
}

hashed := sha256.Sum256(data)
err = rsa.VerifyPKCS1v15(rsaPublicKey, crypto.SHA256, hashed[:], signature)
if err != nil {
    panic(err)
}

fmt.Println("签名验证成功")

}
在这个示例中,publicKeyBytes是从公钥文件中读取的公钥,使用x509.ParsePKIXPublicKey函数将公钥解析为*rsa.PublicKey类型的对象。

signatureBase64是前面加密步骤中生成的签名字符串,使用base64.StdEncoding.DecodeString函数将其转换为字节数组。

使用sha256.Sum256函数对原始数据进行哈希,使用rsa.VerifyPKCS1v15函数对哈希结果和签名进行验证,其中第二个参数crypto.SHA256指定了使用SHA256哈希算法进行验证。

如果验证通过,则输出"签名验证成功",否则会抛出错误。






ChatGPT Feb 13 Version. Free Research Preview. Our goal is to make AI systems more natural and safe to interact with. Your feedback will help us improve.PHP怎么使用 SHA256withRSA进行加密

使用SHA256withRSA进行加密,需要进行以下步骤:

准备密钥对
首先,你需要生成一个RSA密钥对,包括一个私钥和一个公钥。你可以使用openssl库来生成密钥对。

以下是一个生成2048位RSA密钥对的示例命令:

csharp
Copy code
openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -outform PEM -pubout -out public_key.pem
这将生成一个名为private_key.pem的私钥文件和一个名为public_key.pem的公钥文件。

使用私钥进行加密
接下来,你需要使用私钥对要加密的数据进行签名。

以下是一个使用PHP内置的OpenSSL函数进行加密的示例:

bash
Copy code
$data = '要加密的数据';
$private_key = openssl_get_privatekey(file_get_contents('private_key.pem'));

openssl_sign($data, $signature, $private_key, OPENSSL_ALGO_SHA256);

echo base64_encode($signature);
在这个示例中,$data是要加密的数据,$private_key是从私钥文件中加载的私钥。

openssl_sign函数接受要签名的数据、一个签名结果的变量和一个私钥。OPENSSL_ALGO_SHA256指定了使用SHA256哈希算法进行签名。

最后,我们使用base64_encode函数将签名结果转换为字符串并输出。

使用公钥进行验证
在接收方收到数据后,可以使用公钥来验证签名的有效性。

以下是一个使用PHP内置的OpenSSL函数进行验证的示例:

php
Copy code
$data = '要加密的数据';
$signature = base64_decode('签名结果字符串');
$public_key = openssl_get_publickey(file_get_contents('public_key.pem'));

$valid = openssl_verify($data, $signature, $public_key, OPENSSL_ALGO_SHA256);

if ($valid == 1) {
echo '签名验证通过';
} elseif ($valid == 0) {
echo '签名验证失败';
} else {
echo '签名验证出错';
}
在这个示例中,$data是原始数据,$signature是从发送方收到的签名结果,$public_key是从公钥文件中加载的公钥。

openssl_verify函数接受原始数据、签名结果、公钥和哈希算法。如果签名验证通过,它将返回1,如果签名验证失败,它将返回0,如果出现错误,它将返回-1。

以上就是使用PHP进行SHA256withRSA加密和验证的基本步骤。
一加8Pro

(/@Ta/2023-02-15 10:45//)

5.

@TabKey9,给出你的问题,我试一下。

(/@Ta/2023-02-15 13:43//)

6. @老虎会游泳,用html、css、js写个烟花爆炸效果的页面!
(/@Ta/2023-02-15 16:00//)

7.
(/@Ta/2023-02-15 16:07//)

8.

@TabKey9
图片.png(13.43 KB)
图片.png(23.64 KB)

<!DOCTYPE html>
<html>
<head>
	<title>烟花爆炸效果</title>
	<style>
		#firework-container {
			position: relative;
			width: 100%;
			height: 100%;
			background-color: black;
			overflow: hidden;
		}
		#firework {
			position: absolute;
			width: 10px;
			height: 10px;
			border-radius: 50%;
			background-color: white;
			animation: explode 1s ease-out;
		}
		@keyframes explode {
			from {
				transform: scale(0);
			}
			to {
				transform: scale(20);
				opacity: 0;
			}
		}
	</style>
</head>
<body>
	<div id="firework-container"></div>

	<script>
		function createFirework() {
			// 创建烟花元素
			const firework = document.createElement("div");
			firework.id = "firework";

			// 设置烟花随机位置
			const x = Math.random() * window.innerWidth;
			const y = Math.random() * window.innerHeight;
			firework.style.left = x + "px";
			firework.style.top = y + "px";

			// 将烟花添加到页面中
			const fireworkContainer = document.getElementById("firework-container");
			fireworkContainer.appendChild(firework);

			// 在 1s 后删除烟花元素
			setTimeout(() => {
				firework.remove();
			}, 1000);
		}

		// 每隔 500ms 创建一个烟花
		setInterval(createFirework, 500);
	</script>
</body>
</html>

图片.png(21.17 KB)
图片.png(102.9 KB)

HTML:

<!DOCTYPE html>
<html>
<head>
  <style>
    #fireworks {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      overflow: hidden;
    }

    .firework {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 1px;
      height: 1px;
      background-color: red;
      border-radius: 50%;
      transform: translate(-50%, -50%);
    }
  </style>
</head>
<body>
  <div id="fireworks"></div>
  <script src="fireworks.js"></script>
</body>
</html>

CSS:

#fireworks {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.firework {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 1px;
  height: 1px;
  background-color: red;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}

JavaScript:

const fireworks = document.getElementById('fireworks');

function createFirework() {
  const firework = document.createElement('div');
  firework.className = 'firework';
  fireworks.appendChild(firework);

  setTimeout(() => {
    firework.style.width = '5px';
    firework.style.height = '5px';
    firework.style.backgroundColor = 'yellow';
  }, 0);

  setTimeout(() => {
    firework.style.width = '10px';
    firework.style.height = '10px';
    firework.style.backgroundColor = 'white';
  }, 500);

  setTimeout(() => {
    firework.style.width = '20px';
    firework.style.height = '20px';
    firework.style.backgroundColor = 'red';
    firework.style.opacity = 0;
  }, 1000);

  setTimeout(() => {
    fireworks.removeChild(firework);
  }, 1500);
}

setInterval(createFirework, 2000);
(/@Ta/2023-02-15 17:00//)

9.

@TabKey9,如果用审查元素看一下,就能发现第一个几乎已经正确实现了,只是<div>宽度是0所以没有显示出来。加个

		html, body {
			width: 100%;
			height: 100%;
		}

就能显示出来了。

HTML代码

(/@Ta/2023-02-15 17:01//)

10. @老虎会游泳,好吧,看样子它给你的回复并没有超过单次回复的字符上限。尝试给它加点需求,它会重新发送一份新的代码,代码量超过上限之后,我好像遇到了“代码不完整的问题”。
(/@Ta/2023-02-15 17:17//)

11.

@TabKey9,你看第二个,已经分段了。但继续后是连上了的。
代码没有不完整,只是功能不正确而已。
或者,它可能可以在IE上正确运行。
代码确实在运行,DIV也显示到了预期的位置,只是颜色没有渲染出来而已。

(/@Ta/2023-02-15 17:20//)

12.

@TabKey9,第二个的问题也找到了,是渲染的像素太小了,存在时间又短,颜色又浅,所以我没看见。如果把所有px前面都加个0,就能看见了,在最中间。

当然,这肯定不是你想要的效果,而且这个代码的风格看起来就是IE6年代的。

HTML代码

(/@Ta/2023-02-15 17:25//)

13.

@TabKey9,经过多轮对话,它成功了。

图片.png(35.25 KB)
图片.png(59.78 KB)
图片.png(27.66 KB)
图片.png(35.98 KB)

HTML代码

虽然不是很好看,但确实可以运行不是吗

(/@Ta/2023-02-15 17:34//)

14.

@老虎会游泳,哈哈,让它写个炫酷效果的试试
小米20定制版

(/@Ta/2023-02-15 17:42//)

15.

@老虎会游泳,然不是很好看,但确实可以运行

我又复现了哪个问题,看截图,感觉拼接不上,for之后马上就是Firework.prototype.update = function() {
QQ截图20230215175940.png(153.12 KB)

(/@Ta/2023-02-15 18:03//)

16.

@老虎会游泳,我好像找到了问题的原因,它帮我把不完整的function重发一次,并继续往下发送剩余代码。不确定是不是这样,我截取了前后两部分代码进行了比较,如图
23.png(94.52 KB)

(/@Ta/2023-02-15 18:08//)

17.

这是第一次对话给出的正常代码

HTML代码

这是再次对话之后的代码,
按我的理解,我把两部分代码拼接在一起之后,可我并没看见任何烟花相关的效果

HTML代码

(/@Ta/2023-02-15 18:23//)

18.

牛逼哄哄
小米8(白)

(/@Ta/2023-02-15 19:10//)

19.

HTML代码

一加8Pro

(/@Ta/2023-02-15 20:57//)

下一页 1/5页,共95楼

回复需要登录

6月29日 00:35 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1