iT邦幫忙

0

如何將String拆成Array

    //將每個字元以空白分開
    // ['a','b','c'.....n]
    s := strings.Split(sourceString, "")
	var (
		a1 string
		a2 string
		a3 string
		a4 string
        startIndex = 0
        endIndex   = 16
	)
	for i := startIndex; i <= endIndex; i++ {
		a1 += s[i]
		startIndex++
	}
	arr = append(arr, a1)
	for i := startIndex; i <= endIndex*2; i++ {
		a2 += s[i]
		startIndex++
	}
	arr = append(arr, a2)
	for i := startIndex; i <= endIndex*3; i++ {
		a3 += s[i]
		startIndex++
	}
	arr = append(arr, a3)
	for i := startIndex; i < endIndex*4; i++ {
		a4 += s[i]
	}
	arr = append(arr, a4)
	return arr

以上是我自己做的,是拿來當作加密用的,
不知道有沒有語法可以輕易達到這個效果?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
froce
iT邦大師 1 級 ‧ 2019-06-20 22:30:57
最佳解答

1.golang可以直接對string做slice啊。
2.你那些for迴圈看起來就會造成超出slice範圍的問題。
3.從你的code完全看不懂你的思路...

如果是純粹拆成4份的話,可以看下面:
https://play.golang.org/p/4xH7-uxb1iU

然後建議加解密盡量去用go帶的模組。
https://blog.csdn.net/wade3015/article/details/84454836

debr979 iT邦新手 5 級 ‧ 2019-06-21 11:33:37 檢舉

是不會超出範圍,不過我知道效能很糟糕,
不過您提供的參考資料可以幫助到我,謝謝。

0
小魚
iT邦大師 1 級 ‧ 2019-06-20 17:46:13

要接收array的資料,
用array接收不是比較直接嗎?

看更多先前的回應...收起先前的回應...
debr979 iT邦新手 5 級 ‧ 2019-06-20 18:02:51 檢舉

您好,我的想法是把一個string做sha256,
再拆成四份,在四份中間各插入n個字元的隨機碼;
所以想說拆成Array會比較方便作業。
拿來加密密碼用的,廢柴如我只想得到這招/images/emoticon/emoticon06.gif

小魚 iT邦大師 1 級 ‧ 2019-06-20 19:46:53 檢舉

如果是隨機的,
你有辦法重現或解密嗎?
加密應該是要有辦法驗證或解密吧.

不過先就你的想法而言,
應該不是用乘的吧,
正常是 i * 4 + 1(或0/2/3等),
另外一個思維是,
正常使用i做for迴圈,
然後判斷 i % 4 = ? 來決定要給哪個字串,
不需要那麼多for迴圈,
不知道這是不是你想要的?

froce iT邦大師 1 級 ‧ 2019-06-20 22:08:43 檢舉

看不懂你的思路。
你是要把string切成4等分?

ant1017 iT邦新手 2 級 ‧ 2019-06-21 16:31:28 檢舉

轉成ANSI後,看長度,雙數就+A,單數就+B...這樣會不會簡單點..

我要發表回答

立即登入回答