jetbra-server-go 用golang 重复造个轮子吧

求大佬来个zip啊

1 个赞

自己编译吧

谢谢

kissing_heart

问一下佬: 这个本地启动server后, 生成对应的code,该填写到jetbrain的哪里就可以用了呢?

感谢楼主, 我稍作修改后已将其上传至GitHub。如果楼主介意的话,请告知,我会将其删除
https://github.com/iofeqkurrc42/jetbra-server-go

2 个赞

插眼

提供一个根据公钥/秘钥生成生成power.conf配置的代码吧,这样大家就可以用自己的公钥秘钥了

// 生成power.conf配置
func generateEqualResult() {

	fmt.Println("x:证书的签名密文")
	x := new(big.Int).SetBytes(crt.Signature)
	fmt.Println(x)

	fmt.Println("y:证书指数 固定65537")
	y := 65537
	fmt.Println(y)

	block, _ := pem.Decode([]byte(rootCertificate))
	rootCertificate, err := x509.ParseCertificate(block.Bytes)
	if err != nil {
		panic("解析 rootCertificate 报错, 原因: " + err.Error())
	}

	// 其实是个固定的值,这里计算出来也行 jetbra-Z.txt里面
	fmt.Println("z:jetbra的内置根证书的公钥")
	p, _ := rootCertificate.PublicKey.(*rsa.PublicKey)
	z := p.N
	fmt.Println(z)

	zp, _ := crt.PublicKey.(*rsa.PublicKey)
	r := new(big.Int)
	// 对证书验证其实就是验证证书中携带的签名是否和jetbains计算的签名是否一致,jetbrains会使用其内置根证书z尝试对签名解密,
	// 即计算:x.modpow(y,z)(https://www.xuzhengtong.com/2022/07/25/secure/RSA/),但是这里的证书不是由jetbrains签发,所以要替换计算的结果为fakeResult,EQUAL,x,y,z->fakeResult中
	r.Exp(x, big.NewInt(int64(y)), zp.N)
	fmt.Printf("r:modpow计算得到\n")
	fmt.Println(r)

	fmt.Printf("EQUAL,%d,%d,%d->%d", x, y, z, r)
}
5 个赞

不错不错

block, _ := pem.Decode([]byte(rootCertificate))

这行代码都报错了

mark一下!

var rootCertificate = "-----BEGIN CERTIFICATE-----\n" +
	"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\n" +
	"-----END CERTIFICATE-----\n"

rootCertificate主要是为了获取z值,其实是个固定的值

z = 860106576952879101192782278876319243486072481962999610484027161162448933268423045647258145695082284265933019120714643752088997312766689988016808929265129401027490891810902278465065056686129972085119605237470899952751915070244375173428976413406363879128531449407795115913715863867259163957682164040613505040314747660800424242248055421184038777878268502955477482203711835548014501087778959157112423823275878824729132393281517778742463067583320091009916141454657614089600126948087954465055321987012989937065785013284988096504657892738536613208311013047138019418152103262155848541574327484510025594166239784429845180875774012229784878903603491426732347994359380330103328705981064044872334790365894924494923595382470094461546336020961505275530597716457288511366082299255537762891238136381924520749228412559219346777184174219999640906007205260040707839706131662149325151230558316068068139406816080119906833578907759960298749494098180107991752250725928647349597506532778539709852254478061194098069801549845163358315116260915270480057699929968468068015735162890213859113563672040630687357054902747438421559817252127187138838514773245413540030800888215961904267348727206110582505606182944023582459006406137831940959195566364811905585377246353
1 个赞

不错不错

mark,收走了

这不放出来众乐乐?

律师函喽已经 代码应该还公开的

有代码就行啊,直接内网里来一个……

你去github上搜一下 novice佬的仓库

1 个赞

厉害,有没有办法弄个docker容器呀

佬,仓库咱还是匿一下吧